我正在尝试在R中做一些我认为非常简单的事情:添加一个带有总计的新列。
我创建了一个新的数据集,并遵循此suggestion,但事实证明它计算出的总和是错误的。然后,我遵循了另一种可行的方法,但是无法将结果附加为列。
@media
由reprex package(v0.3.0)于2019-09-28创建
答案 0 :(得分:0)
问题是使用级联“总计”将导致length
1比行数大
IUS_12_toy[,13] <- rowSums(IUS_12_toy)
有了dplyr
,我们也可以
library(dplyr)
IUS_12_toy %>%
mutate(Total = rowSums(.))
或与purrr
library(purrr)
IUS_12_toy %>%
mutate(Total = reduce(., `+`))
此外,如果我们使用索引创建列,则默认情况下,data.frame
将对make.names/nake.unique
进行完整性检查,并附加一个字符作为前缀,即此处为“ V”
我们可以直接使用列名作为字符串
IUS_12_toy["Total"] <- rowSums(IUS_12_toy)
答案 1 :(得分:0)
运行?adorn_totals
,您会在文档的第一句中看到一个解释:
此函数排除输入data.frame的第一列,假设它是不求和的描述性变量。
哪个占总金额不符合您的预期。
如果行中有一个标识符-我希望可以使行总和有意义-您可以将其添加到第一列,然后照常进行。
在这里,我在第一列中添加一个新变量year
:
library(dplyr)
IUS_12_toy %>%
mutate(year = 2016:2018) %>%
select(year, everything()) %>% # move it to the first column position
adorn_totals("col")
哪个会产生预期的结果。