我有下面的数据,在某些情况下只有最后一列,我尝试在这个条件下写一个IF语句。当列没有出现或列有一个NA值时,我希望它返回TRUE。如下面的例子所示,它在1位置工作。但是在位置2返回逻辑(0)。有人知道这是为什么吗?我怎么也能让语句在位置2读TRUE或FALSE?
示例数据
df
[[1]]
Score didbreak break
1 6 FALSE <NA>
2 6 FALSE 9
3 5 FALSE <NA>
[[2]]
Score didbreak
1 3 FALSE
2 4 FALSE
[[3]]
Score didbreak
1 9 FALSE
2 8 FALSE
3 8 FALSE
使用if语句(部分是个问题)
if(nrow(df[[xx]])==3 & !is.na(df[[xx]]$Score[3]) & (is.na(df[[xx]]$break[3]) | is.null(df[[xx]]$break[3]))) { }
这对于顶部位置1是有效的,因为在数据的第3行有一个NA值,但是在位置2,它返回逻辑(0),因为没有中断列。
(忽略breif名称等,我在这里编辑了它)
1条答案
按热度按时间velaa5lx1#
在注解中@Konrad Rudolph之后,您可能希望使用
&&
/||
而不是&
/|
(两者有什么区别||以及|在R中)。即
输出:
数据:
为了避免与
break()
混淆,我使用break1
作为名称。