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

如何在R数据框中仅对特定因子对应的列值执行除法运算?

按条件修改data.table列值的实现

需求说明

针对给定的data.table数据集,仅对y列值为"A"的行,将x列的值除以1000,其余行保持原有值不变。

原数据集代码

library(data.table)
df = data.table(x = c(1000,2000,10,2), y = c('A','A','B','B'))

实现代码

利用data.table的高效就地修改语法,一行代码即可完成需求:

df[y == "A", x := x / 1000]

验证结果

执行上述代码后,查看数据集df,结果如下:

> df
    x y
1:  1 A
2:  2 A
3: 10 B
4:  2 B

语法说明

data.table的DT[筛选条件, 列名 := 修改逻辑]语法,会仅对满足筛选条件的行执行列修改操作,无需额外创建副本,处理效率远高于普通data.frame的修改方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:56:08