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

如何在R中按索引修改列中重复的subject_name值?

问题解答:修改数据框指定行的列值

你的尝试失败的原因

  • 索引范围错误:你选的dt[1:2,c(2)]是前两行(对应subject_ID 101的记录),但需求是修改subject_ID 103的行(第5、6行)
  • 修改目标值错误:你把"M"替换成了"M1",但需求是改成"M2"
  • 未修改原数据框:你把结果存在了新变量dt.try1里,根本没改动原数据框dt

通过索引实现需求的正确方法

方法1:按subject_ID匹配定位(推荐,不受行位置变动影响)

由于cbind生成的数据框中a列是字符类型,直接匹配字符"103"即可:

# 定位a列等于"103"的行,修改对应b列的值为"M2"
dt[dt$a == "103", "b"] <- "M2"
# 查看修改后的结果
dt

运行后会得到期望的结果:

a  b
1 101  M
2 101  M
3 102  P
4 102  P
5 103 M2
6 103 M2

方法2:按固定行号索引(适合已知目标行位置的情况)

如果你明确知道subject_ID 103在第5、6行,可以直接指定行号:

dt[5:6, "b"] <- "M2"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 05:53:23