【发布时间】:2019-12-15 02:56:52
【问题描述】:
我有一个包含 6 年数据的数据框。每一年都有相同的变量。我试图找到 6 年内每个变量的平均值。每年都有不同行的缺失(NA)。在这个例子中,我试图获得 6 岁以上女孩人数的平均值。
我尝试过使用 mutate 和 pipe 函数,但它似乎不起作用。通过复制我的所有列,它给了我奇怪的结果。
roughcopy2$headcount_girls_mean <-
roughcopy2 %>%
mutate(headcount_girls_mean=rowMeans(.[ ,
c("headcount_total_girls_rounded_1314","headcount_total_girls_rounded_1415",
"headcount_total_girls_rounded_1516" ,
"headcount_total_girls_rounded_1617",
"headcount_total_girls_1718",
"headcount_total_girls_1819")], na.rm=TRUE))
此代码复制了我的所有数据框列,并添加了“headcount_girls_mean”。复制数据集中的每个列名。所以我的原始数据集,即 roughcopy2 有 150 列。运行上述内容后,我得到 300 列,后 150 列与前 150 列标题相同,但前缀为“headcount_girls_mean”。
【问题讨论】:
-
请使用
dput添加您的数据样本。使用dput(head(roughcopy,n))。 -
您应该添加@NelsonGon 已经提到的数据样本(或数据的表示形式)。从您告诉我们的内容来看,我相信您应该使用
tidyr库中的gather()之类的东西。使用gather(),您可以将列折叠成键值对,然后对这个“整洁”的数据框进行分析。 -
尝试在
dplyr和mutate上阅读本教程。 stat545.com/block010_dplyr-end-single-table.html 我不想听起来很纯粹,但你使用mutate非常错误。