我是R的新手并试图将评估的区块与未评估的区块分开。我知道如何根据列值选择某些行,但是在这个特定的数据集中,只有几行表明它是否被评估(这将意味着对以下行的评估):
e.g:
Block Number Assessment block Target or stimuli
1 no gaps
target
gaps
target
gaps
target
2 no gaps
target
gaps
target
gaps
target
3 yes gaps
target
gaps
target
gaps
target
gaps
4 yes target
gaps
target
gaps
如何仅选择评估的区块,而不会丢失未指定评估区域的行的数据?
E.g从第3块开始选择行
我必须为300个文件执行此操作,并且评估的块始终以不同的行号开始
任何帮助将不胜感激!谢谢!
答案 0 :(得分:0)
请检查以下
a<-c(1,2,3,4,5)
b<-c('yes','no', 'yes', NA, 'yes')
e<-c('a', 'b', 'c', 'd', 'e')
x<-data.frame(a, b, e)
x[which(is.na(x$b) | x$b == 'yes'),]
答案 1 :(得分:0)
简短回答:
只需使用which
进行比较,您就可以使用NA
来处理==
问题。
LONG ANSWER:
给出这个例子df:
test <- data.frame(Block_Number = c(1,2,3,4,5),
Assessment_Block = c("no", "no", "yes", "yes", NA))
如果我理解正确,你做了类似的事情:
test[test$Assessment_Block == "yes",]
还返回了第5列(在我的示例中),在Assessment_Block中有NA
。如果您添加which
,则应解决问题:
test[which(test$Assessment_Block == "yes"),]