按 R 中的一组条件划分行
Dividing rows by a set of conditions in R
我正在将原始数据的最大似然值与修改后的数据集进行比较。对于修改后的数据集,我需要创建一个函数,在参数值超过特定值时将一行分成两行。例如,基础数据集如下所示:
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
是这样的吗?
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)
我正在将原始数据的最大似然值与修改后的数据集进行比较。对于修改后的数据集,我需要创建一个函数,在参数值超过特定值时将一行分成两行。例如,基础数据集如下所示:
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
是这样的吗?
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)