按R中的一组条件划分行

时间:2018-03-06 03:19:45

标签: r dplyr data-cleaning

我正在比较原始数据与修改数据集的最大可能性。对于修改后的数据集,我需要创建一个函数,如果参数的值超过特定值,该行将行分为两行。例如,基础数据集如下所示:

Year ID Displacement
1999  A  38
1999  B  15
2001  B  19
2003  C  17

对于修改后的数据集,我想将第一行中的38除以19行的两行。如下所示:

Year ID Displacement
1999  A  19
1999  A  19
1999  B  15
2001  B  19
2003  C  17

1 个答案:

答案 0 :(得分:1)

这样的东西?

df2 <- df[with(df, c(rep(which(Displacement >= 38), 2), which(Displacement < 38))), ];
df2$Displacement[df2$Displacement >= 38] <- df2$Displacement[df2$Displacement >= 38] / 2;
#    Year ID Displacement
#1   1999  A           19
#1.1 1999  A           19
#2   1999  B           15
#3   2001  B           19
#4   2003  C           17

样本数据

df <- read.table(text =
    "Year ID Displacement
1999  A  38
1999  B  15
2001  B  19
2003  C  17", header = T)