【发布时间】:2019-08-02 08:53:25
【问题描述】:
我有需要分成几个月的年度数据。操作非常简单,只需将月份的年度数据平均分配即可。
我的第一步是复制年度列 12 次,并使用适当的列名称(月份)。下一步是将每列除以 12。
我被困在第一步,因为我能够创建月份列,但只填充了第一个,其余的只是 NAs
使用 Iris 数据集查看下面的一些代码
months <- paste(2019,seq(1,12,1), sep = "-")
map_df(months, ~
iris %>% mutate(!!.x := Sepal.Length))
Sepal.Length Sepal.Width Petal.Length Petal.Width Species 2019-1 2019-2 2019-3 2019-4 2019-5 2019-6 2019-7 2019-8 2019-9 2019-10 2019-11 2019-12
1 5.1 3.5 1.4 0.2 setosa 5.1 NA NA NA NA NA NA NA NA NA NA NA
2 4.9 3.0 1.4 0.2 setosa 4.9 NA NA NA NA NA NA NA NA NA NA NA
3 4.7 3.2 1.3 0.2 setosa 4.7 NA NA NA NA NA NA NA NA NA NA NA
4 4.6 3.1 1.5 0.2 setosa 4.6 NA NA NA NA NA NA NA NA NA NA NA
如您所见,2019-1 年工作正常(复制 Sepal.Length),但其余月份只是 NA。
我在这里缺少什么?
【问题讨论】:
-
在
data.table中也更直接:setDT(iris)[, (months) := Sepal.Length](尽管这可能无法正常工作,因为iris已锁定,您需要先进行复制)
标签: r dictionary dplyr purrr