我们可以使用以下代码检索数据框df
的子集,其中col1
的值等于1。
sub = df[df$col1==1,]
我想基于一些作为字符串
传递的条件来对数据框进行子集化cond = "df$col1==1"
sub = df[cond, ]
上述代码不起作用。有没有解决这个问题的工作?如何动态地对数据帧进行子集化?
答案 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"))]