假设我有一个数据框, df
有30列: A1
到 A30
. 我知道我可以通过编写如下命令来对这个数据框进行子集化:
filteredrows = subset(df, A1 == 30 & A2 == 2 & A3 == "this")
上面的示例基于三列中的值过滤数据,但我必须对大约12列中的值执行此操作 . 在subset()函数中写入这12个值会使它太长 . 为了使代码更清晰,有没有办法可以将条件指定为变量或函数,然后使用它指定子集函数中的条件 . 是否有类似以下内容?
x = (A1 == 30 & A2 == 2 & A3 == "this")
filteredrows = subset(df, x)
提前致谢 .
2 回答
你的建议几乎可行,当你得到
x
时,你只需要with
.您也可以通过这种方式获得子集 .
您可能还想将
x
放在数据框df
中;否则重新排序数据框可能会搞砸了,比如说您可以将条件指定为
expression
,然后使用eval
将其传递给子集: