我有一个带有两列的数据框,一个索引列,用于索引第二个数据帧中的行。这些行都包含特定事件。这是哪个事件,在第二列中编码,此处命名为index <- c(769, 766, 810, 813, 830, 842, 842, 892, 907, 944)
code_start_stop <- c(2006, 2001, 2004, 1001, 1004, 2001, 1001, 1006, 2004, 1004)
replace_all <- data.frame(index, code_start_stop)
。
示例:
{{1}}
现在有成对的开始/停止代码,即2001和1001,2002和1002等。目的是,如果有行被开始标记包围(即2006年)和相应的下一站点标记(此处为1006),应从数据框中删除这些行。 请注意,始终有一对开始&amp;停止标记。
任何有关如何做到这一点的聪明方法的建议都表示赞赏。谢谢!
答案 0 :(得分:0)
你的问题有点令人困惑,如果我弄错了,请纠正我。 以下应该有效:
startm <- 2006 #startmarker
endm <- 1006 #endmarker
#look for row that contains markers
index1 <- which(replace_all[,2] == startm)
index2 <- which(replace_all[,2] == endm)
#subset accordingly
replace_all <- replace_all[-(index1:index2),]
注意:这也会删除包含标记的行。如果您只想删除标记之间的行,请在子集步骤中添加+ 1 / -1。