【发布时间】:2017-04-20 12:01:10
【问题描述】:
这是这个问题的后续问题:Rowsums conditional on column name
我的数据框名为wiod,如下所示:
VAR1 VAR2 AUS1 ... AUS56 BEL1 ... BEL56 NLD1 ... NLD56
A D 23 ... 99 0 ... 444 123 ... 675
B D 55 ... 6456 0 ... 557 567 ... 4345
我想计算变量AUS, BEL, NLD 的行总和,然后删除旧变量。像这样:
wiot <- wiot %>%
mutate(AUS = rowSums(.[grep("AUS", names(.))])) %>%
mutate(BEL = rowSums(.[grep("BEL", names(.))])) %>%
mutate(NLD = rowSums(.[grep("NLD", names(.))])) %>%
select(Var1, Var2, AUS, BEL, NLD)
当然,还有大量的变量组,而不仅仅是这三个(准确地说是 43 个)。有没有不使用 43 mutate 命令的便捷方法?
【问题讨论】:
-
imo,您应该将数据转换为长格式(整洁),这将使计算更容易
-
我同意,你的数据并不“整洁”,所以不要指望
dplyr能正常工作。