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

R语言如何按行优先批量替换dataframe中指定的多行内容

R 对 data.frame 子集赋值默认按列循环填充,直接传入长度为 2 的向量 c(1,2) 会先填充第一列的两行,再填充第二列的两行,因此会得到你示例中的错误结果。

可行解决方案

方案1:构造维度匹配的按行填充矩阵

构造和待替换子集维度完全一致的矩阵,开启按行填充模式即可实现按行赋值:

df[1:2, ] <- matrix(c(1,2), nrow = 2, ncol = ncol(df), byrow = TRUE)

方案2:列表赋值(更简洁)

data.frame 本质是按列存储的列表结构,传入长度和列数相等的列表,R 会自动将每个列表元素填充到对应列的所有选中行:

df[1:2, ] <- list(1, 2)

两种方法执行后,都可以得到你期望的输出:

n m
1 1 2
2 1 2
3 3 6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:24:03