R Data.Table 多重赋值 IfElse

标签 r data.table

data1=data.frame(Year=c(1,1,1,2,2,2,3,3,3),
"Group=c('A','A','A','B','B','B','C','C','C'),
"A=c(5,6,7,10,9,6,10,7,10),
"B=c(8,10,5,6,9,8,9,5,8),
"C=c(7,9,5,5,8,7,9,5,10))



data2=data.frame(Year=c(1,1,1,2,2,2,3,3,3),
"Group=c('A','A','A','B','B','B','C','C','C'),
"A=c(5,6,7,10,9,6,0,0,0),
"B=c(8,10,5,6,9,8,0,0,0),
"C=c(7,9,5,5,8,7,-99,-99,-99))

我有“data1”并希望通过使用 data.table 中的 fifelse 获得“data2”。规则是,如果 Group = 'C',则列 'A' 和 'B' 等于零,列 'C' 等于 -99。

最佳答案

data.table中使用条件替换,

data.table::setDT(data1)
data1[Group == "C",`:=`(A = 0, B = 0, C = -99)]

请注意,最终数据帧是 data1(:= 通过引用更新),而不是 data2

关于R Data.Table 多重赋值 IfElse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60894018/

相关文章:

r - R 中的 fread data.table 不读取列名

r - typeof(data.frame) 在 R 中显示 "list"

r - 是否可以就地(破坏性地)修改data.frame?

R 给定相同维度数据表的列表,生成每个单元格均值的汇总

R: 如何对 ";"分隔的数值进行分隔和相加(maxed out memory问题)

r - 替代 expand.grid for data.frames

r - 使用简单漂亮的代码在绘图中插入公式

python /R : generate dataframe from XML when not all nodes contain all variables?

R - 将数据框行拆分为两行

r - 解析出字符串,将其设置为 R data.table 中的因子列