我有一个看起来像这样的 data.table
dt <- data.table(ID=c("A","A","B","B"),Amount1=c(100,200,300,400),
Amount2=c(1500,1500,2400,2400),Dupl=c(1,0,1,0))
ID Amount1 Amount2 Dupl
1: A 100 1500 1
2: A 200 1500 0
3: B 300 2400 1
4: B 400 2400 0
我需要复制 Dupl 列中包含 1 的每一行,并将 Amount1 值替换为该复制行中的 Amount2 值。除此之外,我需要在 Dupl 中为该重复行赋予值 2。这意味着它应该是这样的:
ID Amount1 Amount2 Dupl
1: A 100 1500 1
2: A 1500 1500 2
3: A 200 1500 0
4: B 300 2400 1
5: B 2400 2400 2
6: B 400 2400 0
任何帮助深表感谢!
亲切的问候,
蒂姆
最佳答案
你可以试试
rbind(dt,dt[Dupl==1][,c('Amount1', 'Dupl') := list(Amount2, 2)])
关于r - 根据 R 中的条件创建重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28961442/