按R中的一组条件划分行

问题描述 投票:-1回答:1

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

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
r dplyr data-cleaning
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.