粘贴列表的值以获取列的总和值

时间:2016-07-24 13:42:04

标签: r

我想创建一个不同列的总和。在那里,我有一个for循环,它创建一个列的名称并获取总和。

伪数据是这样的:

row1 <- c(1,2,3)
row2 <- c(23,3,4)

df <- data.frame(row1, row2)

我想创建这样的东西:\

list <- c("row1", "row2")

for (i in 1:2){

  name <- list[i]
  var <- paste0("df$", name)

  x <- sum(var)
  print(x)

}

然而,这会引发以下错误:

Error in sum(x) : invalid 'type' (character) of argument

我出错的任何想法

1 个答案:

答案 0 :(得分:0)

我不知道如何将字符串'df$row1'转换为具有您想要的含义的变量df$row1。但是,您可以使用R&#39的列表命名语法,使用该数据框中的名称直接访问df的列。以下一个班轮将打印出list向量中显示的每个列名的总和。

sapply(list, function(x) print(sum(df[[x]])))

<强>输出:

[1] 6
[1] 30
row1 row2
   6   30