使用作为字符串传递的条件(动态子集数据帧)子集数据帧

时间:2016-08-06 13:31:58

标签: r dataframe

我们可以使用以下代码检索数据框df的子集,其中col1的值等于1。

sub = df[df$col1==1,]

我想基于一些作为字符串

传递的条件来对数据框进行子集化
cond = "df$col1==1"
sub = df[cond, ]

上述代码不起作用。有没有解决这个问题的工作?如何动态地对数据帧进行子集化?

3 个答案:

答案 0 :(得分:3)

尝试:

cond = "df$col1==1"
sub = df[eval(parse(text=cond)),]

谢谢!

答案 1 :(得分:1)

作为另一种选择,您可以使用filter_包中的dplyr

library(dplyr)
sub = filter_(df, "col1 == 1")

答案 2 :(得分:0)

我们可以使用

library(data.table)
setDT(df)[eval(parse(text="col1 ==1"))]
相关问题