【发布时间】:2018-08-20 21:25:32
【问题描述】:
我正在寻找从 R 中的数据框中检索信息的最直接方法。数据框包含多个日期,第 0 天、第 1 天、第 2 天、第 3 天、第 4 天、第 5 天、第 6 天、第 4 天7 天和第 8 天。事件列在特定日期,我们有兴趣查找在任何连续两天之间发生的事件,以及在存在空条目的日期之间发生的事件(下表中的 ee 将包括第 1 行中的第 3 天和第 5 天)。
Person day0 day1 day2 day3 day4 day5 day6 day7 events
1 10 12 14 18 NA 22 32 50 20
2 11 15 19 NA NA NA 50 67 35
3 12 18 21 26 33 42 50 NA 45
4 15 24 32 NA 43 NA 54 76 40
完整的数据集有几千人。
我尝试在前两天检查并将事件写入向量:
for(i in 1:length(days$Person)){
if(days$event[i] != NA){
if(days$day0[i] != NA){
if(days$day1[i] != NA){
if(days$day0[i] < days$events[i] & days$day1[i] > days$events[i]){
vector[i]<-events[i]
}
}
}
但是,我仍然遇到错误。
if (days$day1[i] != NA) { 中的错误:缺少 TRUE/FALSE 的值 需要
任何帮助将不胜感激。
【问题讨论】:
-
你能显示预期的输出吗?
-
if (days$day1[i] != NA) { 中的错误:需要 TRUE/FALSE 的地方缺少值
-
预期输出只是一个带有事件日期的向量。
-
variable != NA错误,使用!is.na(variable)。 -
你的第一个
if应该是if(days$event[i] != NA),而它应该是events,最后是s。
标签: r dataframe logic conditional-statements