我使用以下内容确定了大型数据框中的行号列表:
brownturkey_rows <- grep("brown",Dataframe$color)
我得到了
brownturkey_rows int [1:5] 3 6 7 8 9
现在我需要检查每个行中的某个条件并返回哪些行失败。例如,查看第6行:
Dataframe$age[6] < Dataframe$limit[6]
在perl中,我会使用foreach循环。 R中最好的方法是什么?
答案 0 :(得分:0)
以下是一种方法:
subset(Dataframe[grep("brown", Dataframe$color),], age < limit)
也就是说,您使用grep
的输出作为Dataframe
的过滤器,
然后使用subset
进一步过滤结果。
正如@moody-mudskipper所指出的,还有更好的方法:
subset(Dataframe, grepl("brown", color) & age < limit)
这里grepl
用于获取过滤的逻辑值而不是值本身,
并将其与您感兴趣的其他逻辑条件(age < limit
)直接结合。
另一种方式:
d2 <- Dataframe[grep("brown", Dataframe$color),]
d2[with(d2, age < limit),]