我需要计算每个列值有多少个案例,然后计算另一个按列值分组的列的平均值,我在R中对该列值使用count()函数,但是当我使用count()函数时,除了我分组数据所依据的列之外,所有的列都消失了。有人知道如何根据我用来分组数据的列值将给定的count()值附加到原始数据框中,或者直接计算每列的案例数,这样其余的数据框列(不用于分组数据)就不会消失吗?谢谢。
发布于 2021-03-30 02:46:50
如上所述,如果您共享一部分数据将会更好,这样您将有更好的机会获得您想要的输出。但是,如果希望将count函数的结果添加到数据集中,请改用add_count。我希望这个例子就是你所想的:
library(dplyr)
df <- tribble(
~name, ~gender, ~runs,
"Max", "male", 10,
"Sandra", "female", 1,
"Susan", "female", 4
)
df %>%
add_count(gender) %>%
group_by(gender) %>%
mutate(avg_runs = mean(runs))
# A tibble: 3 x 5
# Groups: gender [2]
name gender runs n avg_runs
<chr> <chr> <dbl> <int> <dbl>
1 Max male 10 1 10
2 Sandra female 1 2 2.5
3 Susan female 4 2 2.5发布于 2021-03-30 03:05:55
假设您的数据集名为df,并且为了输出,我创建了一个名为new的数据集。
您可以使用plyr来执行以下操作:
New <- ddply(df,.(列名),summarize,Count1= sum( name== "value1",na.rm=T),Count2= sum(列名=="value2",na.rm= T),mean1= mean(count1,na.rm=T),mean2= mean(count2,na.rm=T))
https://stackoverflow.com/questions/66859536
复制相似问题