我有data.frame2291行和4列,我想选择列3与下一行的第2列匹配的行,然后从下一个匹配的行再次开始,直到匹配继续,直到它停止.
我尝试使用for循环1:nrow(df),但这不完全准确,因为i(我认为)并不真正从匹配行开始.
我目前的代码是这样的:
test <- NULL
x <- c()
y <- c()
for(i in 1:nrow(df)){
if(df[i,3]==df[i+1,2]){
x <- df[i,]
y <- df[i+1,]
i = i+1 #stuck at this
}
test <- rbind(test,x,y)
}
Run Code Online (Sandbox Code Playgroud)
示例数据如下所示:
X 2670000 3750000 C
X 3830000 8680000 E3
X 8680000 10120000 E1-A
X 10120000 11130079 D
X 11170079 11810079 E3
X 11810079 12810079 E2-A
X 12810079 13530079 E3
X 13530079 14050079 E3
X 14050079 15330079 A
X 15330079 …Run Code Online (Sandbox Code Playgroud) 假设我有一个样本data.frame如下:
1 2 3 4 5 6 7 8 9 11
2 3 4 5 6 7 8 9 10 12
3 4 5 6 7 8 9 10 11 13
Run Code Online (Sandbox Code Playgroud)
我想从我的下一列中减去每一列data.frame,所以我得到这样的结果:
1 1 1 1 1 1 1 1 2
1 1 1 1 1 1 1 1 2
1 1 1 1 1 1 1 1 2
Run Code Online (Sandbox Code Playgroud)
我的真实样本有2291行和50列,我写的代码看起来像这样:
delta <- data.frame(matrix(NA, nrow = 2291, ncol = 49 ))
for(i in 1:nrow(df)){
for(j in 1:ncol(df)-1){ …Run Code Online (Sandbox Code Playgroud)