在R中对数据框特定行求和:排除字符与布尔列
解决方案
针对单一行(第1行)的求和
要实现从第1行第3列开始、排除最后一列的求和,直接定位目标行列后用sum()即可:
# 计算第1行从第3列到倒数第二列的总和 sum(dane_csv[1, 3:(ncol(dane_csv)-1)])
对所有行执行相同求和操作
如果需要对每一行都计算该范围的总和,用rowSums()并指定列范围:
# 对所有行,计算第3列到倒数第二列的行总和(na.rm=TRUE忽略NA值) rowSums(dane_csv[, 3:(ncol(dane_csv)-1)], na.rm = TRUE)
原代码问题说明
你之前尝试的rowSums(dane_csv[, 3:length(dane_csv$Nazwa=='POLSKA')])存在两个关键错误:
dane_csv$Nazwa=='POLSKA'返回的是逻辑向量(长度等于数据框行数,这里是6),length()取到的是行数而非列数,导致列范围定位错误。- 若仅针对第1行求和,
rowSums()并非最优选择,sum()更直接。
内容的提问来源于stack exchange,提问作者focus87krk
相关产品推荐
相关产品推荐

