gpt4 book ai didi

r - 如何根据列值条件选择行

转载 作者:行者123 更新时间:2023-12-04 12:08:24 24 4
gpt4 key购买 nike

我有一个数据集,如下所示(部分):

id  name    dummy
1 Jane 1
1 Jane 0
1 Jane 1
2 Mike 0
2 Mike 0
2 Mike 0
2 Mike 0
2 Mike 0
3 Tom 1
3 Tom 1
3 Tom 0
3 Tom 0

我试图消除所有变量 dummy 为 0 的人。例如,TomJane 不会被淘汰,因为他们有 dummy 变量 0 或 1,但是 Mike 将被淘汰,因为他全是 0。所以我想在最后

   id   name    dummy
1 Jane 1
1 Jane 0
1 Jane 1
3 Tom 1
3 Tom 1
3 Tom 0
3 Tom 0

我考虑过根据 dummy 对数据框进行排序,但我似乎无法弄清楚如何处理我只是想消除只有 0 值的人这一事实对于变量 dummy。任何建议都会非常有帮助!

最佳答案

考虑 df 是您的 data.frame,然后使用 tapply[ 对您想要的内容进行子集化:

> ind <- with(df, tapply(dummy, name, sum))
> df[df$name %in% names(ind)[ind!=0], ]
id name dummy
1 1 Jane 1
2 1 Jane 0
3 1 Jane 1
9 3 Tom 1
10 3 Tom 1
11 3 Tom 0
12 3 Tom 0

另一种选择:

> result <- split(df, df$name)[with(df, tapply(dummy, name, function(x) sum(x)!=0))]
> do.call(rbind, result)

关于r - 如何根据列值条件选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20808724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com