【发布时间】:2018-05-11 21:31:06
【问题描述】:
如果这是重复的,请告诉我。我查看了 Stack 并发现了类似的问题,但并没有完全回答我的问题。我是初学者,所以我感谢任何人的帮助。
我正在尝试将年度汇总变量添加到每月数据的数据框中(即跨行求和)。这是一个包含有限月度数据的示例数据框。
df <- data.frame("Jan.2012" = c(1, 4, 5, 6), "Feb.2012" = c(3, 5, 7, 9),
"Jan.2013" = c(6, 8, 9, 10), "Feb.2013" = c(7, 5, 11, 13), "Jan.2014" = c(6, 8, 9, 11),
"Feb.2014" = c(7, 3, 5, 9))
新变量将命名为 TotalYr2012、TotalYr2013 等。例如,TotalYr2012 = c(4, 9, 12, 15) 等。
我正在尝试遍历 for 循环(不是我知道的最佳实践)来生成这些变量。我知道我在 assign 语句中做错了一些事情,并且出现了错误。
for (i in 2012:2014) {
varname <- paste("TotalYr", i, sep = "")
assign(df$varname, df %>% select(contains("i")) %>%
mutate(varname = sum()))
}
感谢您的帮助!
【问题讨论】:
-
$不适用于变量,您需要使用[或[[。 (但您还有其他几个问题)。