如何在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
相关产品推荐
相关产品推荐

