【发布时间】:2021-03-19 23:12:17
【问题描述】:
我有一个包含 52 个数据集的列表,我正在尝试从每个数据集中获取指定数量的列的列总和并将其导出到新的数据框。我知道我想对第 9 列及之后的所有内容求和,但每个数据集的总列数各不相同。 (“locs”是我的数据框列表)
这是我尝试使用 for 循环的方法:
summaryofsums <- vector("list",1) #empty vector
for (df in 1:length(locs)){
newdf <- df[, colSums(df!= 0) > 0] #get rid of all columns that have only 0s
newdfsum <- colSums(newdf[,9:length(newdf)])
summaryofsums[i] <- newdfsum
}
我收到以下错误:
Error in colSums(df != 0) :
'x' must be an array of at least two dimensions
版本 _
平台 x86_64-apple-darwin15.6.0
拱 x86_64
操作系统 darwin15.6.0
系统 x86_64、darwin15.6.0
状态
专业 3
次要 5.3
2019 年
03月
第 11 天
svn 版本 76217
语言 R
version.string R 版本 3.5.3 (2019-03-11) 绰号大真理
谢谢!!
【问题讨论】:
-
数据框中的列数使用您似乎已正确使用的
length函数返回。您的循环中唯一缺少的似乎是summaryofsums的初始化。您应该始终发布任何错误消息的完整文本。那么你的问题到底是什么?
标签: r sum extract multiple-columns