比较R中行列表中的值

时间:2017-10-06 22:18:54

标签: r

我使用以下内容确定了大型数据框中的行号列表:

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中最好的方法是什么?

1 个答案:

答案 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),]