【发布时间】:2021-02-25 09:02:25
【问题描述】:
我有一个(令人尴尬的)简单问题:如何根据数据框的任何列中的单个值过滤或子集数据框:
df <- data.frame(
v1 = c(1:10),
v2 = c(10:1),
v3 = c(1,3,2,9,5,6,1,2,3,9)
)
假设,我想在任何列中包含值9 的那些行上对df 进行子集化。我可以这样做:
df[df[,1]==9|df[,2]==9|df[,3]==9,]
v1 v2 v3
2 2 9 3
4 4 7 9
9 9 2 3
10 10 1 9
但是对于这样一个微不足道的任务,一个如此复杂的代码!必须有更有效的方法,在base R或其他包中。
【问题讨论】: