提问人:Hack-R 提问时间:11/24/2014 最后编辑:Hack-R 更新时间:11/24/2014 访问量:64
R:我使用%in%有什么问题?
R: What's wrong with my use of %in%?
问:
我创建了一个名为JF
FALSE
JF <- F
我想将该值更改为 if (date) 值位于我从 SQL Server 检索的日期列表中。我会用代替,但有几个不同的变量,比如和任意数量的日期......也因为我想掌握.TRUE
SomeDate
==
%in%
SomeDate
JF.Date
%in%
sql <- "select distinct Date_Values from SomeTable"
JF.Date <- sqlQuery(db, sql)
if (SomeDate %in% JF.Date) {JF <- T}
我检查了两个对象 -- 是字符,是 ,并且是原本的因子,但我尝试将其更改为字符,但它没有解决这个问题。此时,我在代码中存储为字符的原因并不相关。class()
SomeDate
JF.Date
data.frame
JF.Date$Date_Values
SomeDate
这不会返回任何错误,但不会在应该返回时更改 to 的值。我做错了什么?JF
TRUE
您可以使用任何任意日期分配来重现此内容,例如对相同类型/类的对象。<- "1970-01-01"
这
for (i in 1:nrow(JF.Date)){
if (SomeDate == JF.Date[i]) {JF <- T}
}
确实有效,但同样,我想知道如何使用.%in%
答:
0赞
Hack-R
11/24/2014
#1
@beginneR有一个建议,但不起作用,但它使我找到了解决方案:
JF <- SomeDate %in% JF.Date
这完全有道理,但并没有改变 from 的值,就像我最初的尝试一样。JF
FALSE
TRUE
我意识到这是因为 - 虽然这个“数据帧”中只有 1 列 - 但可能有多个列,而 R 不知道要看哪一列。如果显示适当的警告或错误消息,这将更加明显,但这仍然有效:
JF <- SomeDate %in% JF.Date$Date_Value
我不能接受我自己的答案 2 天,所以如果有人对这个问题提出更有用/更全面的答案,那么我会考虑选择你的答案作为我自己的解决方案。如果我要放弃这些要点,你必须让它变得非常好!;)
评论
JF <- SomeDate %in% JF.Date
as.Date(... , format =" ...")
JF <- SomeDate %in% JF.Date$Date_Values
class