如何获取R中选定列的rowSums

sri*_*iya 1 r rowsum

我是 R 的新手,并寻求帮助来计算每行所选列的总和。我的简单数据框如下。

data = data.frame(location = c("a","b","c","d"),
            v1 = c(3,4,3,3), v2 = c(4,56,3,88), v3 =c(7,6,2,9), v4=c(7,6,1,9),
            v5 =c(4,4,7,9), v6 = c(2,8,4,6))
Run Code Online (Sandbox Code Playgroud)

我想要新数据框中每一行的 V1 到 V3 和 V4 到 V6 列的总和。

   x1   x2
a  14   13   
b  66   18
c
d
Run Code Online (Sandbox Code Playgroud)

我做了类似下面的事情。

rowSums(data[,2:4][,5:7])
Run Code Online (Sandbox Code Playgroud)

但是我的代码应该有问题。在此先感谢您的帮助。

Tec*_*e01 6

我的感觉是使用 dply:

require(dply)
data %>% mutate(v2v4 = rowSums(.[2:4])) %>% mutate(v4v6 = rowSums(.[5:7])) %>% select(-(location:v6))
Run Code Online (Sandbox Code Playgroud)

结果:

> newDf <- data %>% mutate(v2v4 = rowSums(.[2:4])) %>% mutate(v4v6 = rowSums(.[5:7])) %>% select(-(location:v6))
> newDf
  v2v4 v4v6
1   14   13
2   66   18
3    8   12
4  100   24
Run Code Online (Sandbox Code Playgroud)


raf*_*ira 3

这是一个非常简单的解决方案,使用apply.

output <- data.frame( x1 = apply(data[2:4], 1, sum) ,
                      x2 = apply(data[5:7], 1, sum) )
Run Code Online (Sandbox Code Playgroud)

结果:

output
>    x1 x2
> 1  14 13
> 2  66 18
> 3   8 12
> 4 100 24
Run Code Online (Sandbox Code Playgroud)