You need to enable JavaScript to run this app. R语言如何用100减去dataframe列总和后新增数据行?
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何用100减去dataframe列总和后新增数据行?

问题原因

你原来的代码逻辑错误,编写的索引语法是对列进行筛选,而非新增行,才会出现列重复、异常列的问题。

正确实现步骤(base R版本)
  1. 预处理Bacteria列(可选,避免因子类型无法新增值报错)
df$Bacteria <- as.character(df$Bacteria)
  1. 计算各数值列的目标值:100减去对应列的求和结果
# 2:ncol(df)即跳过第一列非数值列,na.rm=TRUE可按需添加,避免缺失值导致计算结果为NA
new_numeric <- 100 - colSums(df[, 2:ncol(df)], na.rm = TRUE)
  1. 构造符合原df结构的新行
# t() 是对计算结果转置,保证列顺序和原df完全匹配
new_row <- data.frame(Bacteria = "D", t(new_numeric))
  1. 将新行追加到原df末尾
df_result <- rbind(df, new_row)
效果验证

用你给出的示例数据测试,运行后输出结果如下:

Bacteria Sample1 Sample2
1        A     4.7     4.9
2        B     8.4     2.9
3        C     8.9     1.4
4        D    78.0    90.8

完全符合预期效果。

内容的提问来源于stack exchange,提问作者Fiona

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 18:06:03