r - 根据 R 中的条件创建重复行

标签 r duplicates conditional data.table

我有一个看起来像这样的 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/

相关文章:

mysql - 重复超过 2 列

xml - WiX - 如何仅在 XML 元素尚不存在时添加它

r - 在数据框中查找重复项并更改标识值

excel - 基于在 Excel 中的每一行中为不确定的行数确定的值的条件格式

r - install.packages() Rstudio 服务器 AWS ubuntu 错误

r - 在 R 中用点作为千位分隔符加载 csv 的最优雅的方法

r - plot.lm() 如何确定残差与拟合图的异常值?

R. GGplot2,具有自定义分位数的 geom_boxplot

c# - 单元格值的条件格式

jsf - 我怎样才能使 p :cellEditor conditional in PrimeFaces?