所以我将我的数据集分成几组,我想知道如何从百分比列中找到大于或等于值70的行(注意:数据框中还有其他列,它们是只是没有显示)
gdata <- split(data, Opportunity.Name)
Dataframe看起来像这样(有更多的组):
Opportunity.Name: Percentage
Bob 50
Bob 60
Bob 20
Bob 80
Bob 90
Bob 100
Jon 100
Jon 90
gdata$'Bob'
Opportunity.Name Percentage
Bob 50
Bob 60
Bob 20
Bob 80
Bob 90
Bob 100
我想应用一些功能,允许我过滤掉50,60和20%的百分比行并保留其他值(并让它为我创建的所有组执行此操作)。谢谢!
答案 0 :(得分:2)
试试这个:
lapply(gdata, function(x){x[x$Percentage>=70,]})
给出:
$Bob
Opportunity.Name Percentage
4 Bob 80
5 Bob 90
$Jon
Opportunity.Name Percentage
6 Jon 100
7 Jon 90
更新:要保留百分比为零的记录,请使用管道运算符添加or
子句:
lapply(gdata, function(x){x[x$Percentage>=70 | x$Percentage==0,]})
或者,如果您愿意,可以使用subset
语法来获得相同的结果:
lapply(gdata, function(x){subset(x, Percentage>=70 | Percentage==0)})
答案 1 :(得分:0)
如果您非常具体地了解您不想要的值,可以使用
d <- subset(gdata, Percentage != 50 & Percentage != 60 & Percentage !=20)