循环以计算每列中的行数并保存输出

时间:2015-03-21 13:08:47

标签: r

我认为这很简单。我有一个名为df的数据框。它有51列。每列中的行包含随机整数。我想要做的所有循环是在每列的所有行中添加所有整数,然后将每个列的输出存储在单独的列表或数据框中。 df看起来像这样

Col1 col2 col3 col4
  34    12    33    67
  22      1    56    66

我想要的输出是:

 Col1 col2 col3 col4
   56    13   89  133

我确实想把它作为一个循环来实现,因为我想将我在这里学到的东西应用到具有类似输出的更复杂的脚本中,我需要快速完成 - 不能完全掌握函数...

2 个答案:

答案 0 :(得分:2)

您可以使用内置函数colSums

> df <- data.frame(col1 = c(1,2,3), col2 = c(2,3,4))

> colSums(df)

col1 col2
   6    9

使用循环的另一个选项:

# Create the result data frame
> res <- data.frame(df[1,], row.names = c('count'))

# Populate the results
> for(n in 1:ncol(df)) { res[colnames(df)[n]] <- sum(df[n]) }

col1 col2
   6    9

答案 1 :(得分:1)

如果你真的想在矢量化解决方案上使用循环,请使用apply循环遍历列(第二个参数等于21循环遍历行),提到你想要的功能(这里sum):

df = data.frame(col1=1:3,col2=2:4,col3=3:5)

apply(df, 2, sum)

#col1 col2 col3 
#   6    9   12