我需要以编程方式添加名称在矢量中的多个变量。 例如,给定此向量:
myvars <- c("Expectation", "Interesting", "Useful", "OralPresentation")
如何使用前一个向量编写以下表达式?
df %>%
mutate(TotalEvaluation = Expectation + Interesting + Useful + OralPresentation)
答案 0 :(得分:1)
子集数据集的列之后,我们可以使用rowSums
library(dplyr)
df %>%
mutate(TotalEvaluation = rowSums(.[myvars]))
答案 1 :(得分:0)
您可以使用sjmisc::row_sums()
,默认情况下,该行将行和追加到数据帧的末尾:
library(sjmisc)
data("iris")
col <- c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width")
row_sums(iris, col, n = 1)
#> Sepal.Length Sepal.Width Petal.Length Petal.Width Species rowsums
#> 1 5.1 3.5 1.4 0.2 setosa 10.2
#> 2 4.9 3.0 1.4 0.2 setosa 9.5
#> 3 4.7 3.2 1.3 0.2 setosa 9.4
#> 4 4.6 3.1 1.5 0.2 setosa 9.4
#> 5 5.0 3.6 1.4 0.2 setosa 10.2
#> 6 5.4 3.9 1.7 0.4 setosa 11.4
#> ...
或只是新变量:
row_sums(iris, col, n = 1, append = FALSE)
#> rowsums
#> 1 10.2
#> 2 9.5
#> 3 9.4
#> 4 9.4
#> 5 10.2
#> 6 11.4
#> ...
或具有新的变量名...
row_sums(iris, col, n = 1, var = "TotalEvaluation")
#> Sepal.Length Sepal.Width Petal.Length Petal.Width Species TotalEvaluation
#> 1 5.1 3.5 1.4 0.2 setosa 10.2
#> 2 4.9 3.0 1.4 0.2 setosa 9.5
#> 3 4.7 3.2 1.3 0.2 setosa 9.4
#> 4 4.6 3.1 1.5 0.2 setosa 9.4
#> 5 5.0 3.6 1.4 0.2 setosa 10.2
#> 6 5.4 3.9 1.7 0.4 setosa 11.4
#> ...
row_sums()
与dplyr和/或管道操作器无缝协作。