You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将rbind结果保存至原数据框并添加指定行

问题:向数据框追加行并保存至原数据框

示例数据

df <- data.frame(DATE = c('07/01/2022', '08/01/2022'),
                 `0` = c(4, 4),
                 `1` = c(5, 3),
                 `2` = c(5,3), check.names = FALSE)
DATE012
07/01/2022455
08/01/2022433
df2 <- data.frame(V1 = 2,
                  V2 = 4,
                  V3 = 5)
V1V2V3
245

需求

将df2的V1、V2、V3值对应填入df的0、1、2列的最后一行,DATE列留空,最终结果覆盖原df。

尝试的代码及错误

df[2:4] <- rbind(df[2:4], setNames(data.frame(TOTAL = 'Weights', df2), names(df[2:4])))

运行后报错:

✖ Existing data has 3 rows.
✖ Element 1 of assigned data has 4 rows.
ℹ Only vectors of size 1 are recycled.

解决方案

方法1:构造新行后合并

先构造与df列名匹配的新行,再用rbind追加并覆盖原数据框:

# 构造要追加的行,DATE列留空,对应列匹配df2的值
new_row <- data.frame(
  DATE = "",
  `0` = df2$V1,
  `1` = df2$V2,
  `2` = df2$V3,
  check.names = FALSE
)

# 追加到原数据框并保存
df <- rbind(df, new_row)

方法2:简洁写法(转置df2并重命名)

利用转置快速匹配列,同时保持列名一致:

# 转置df2并设置列名与df一致,DATE列留空
new_row <- setNames(data.frame(DATE = "", t(df2)), names(df))
# 追加行
df <- rbind(df, new_row)

最终结果

DATE012
07/01/2022455
08/01/2022433
245

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:57:38