gpt4 book ai didi

r - 基于频率级别的子集

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

这个问题在这里已经有了答案:





Subset data frame based on number of rows per group

(4 个回答)


4年前关闭。




我想生成一个 df 来选择与“ID”相关联的行,而“ID”又与一个名为 cutoff 的变量相关联。对于本示例,我将截止值设置为 9,这意味着我要在 df1 中选择 ID 值与超过 9 行相关联的行。我的代码的最后一行生成了一个我不明白的 df。正确的 df 将有 24 行,所有行都在 ID 列中带有 3 或 4。有人可以解释我的最后一行代码实际上在做什么并提出不同的方法吗?

set.seed(123)
ID<-rep(c(1,2,3,4,5),times=c(5,7,9,11,13))
sub1<-rnorm(45)
sub2<-rnorm(45)
df1<-data.frame(ID,sub1,sub2)
IDfreq<-count(df1,"ID")
cutoff<-9
df2<-subset(df1,subset=(IDfreq$freq>cutoff))

最佳答案

df1[ df1$ID %in%  names(table(df1$ID))[table(df1$ID) >9] , ]

这将测试 df1$ID 值是否在具有超过 9 个值的类别中。如果是,则返回向量的逻辑元素将为 TRUE,反过来,“i”参数将导致 [ - 函数返回整行,因为“j”项为空。

看:
?`[`
?'%in%'

关于r - 基于频率级别的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24835233/

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