我有數據幀,看起來像這樣:中的R用火柴在多個行中刪除數據幀的行
content ChatPosition
This is a start line START
This is a middle line MIDDLE
This is a middle line MIDDLE
This is the last line END
This is a start line with a subsequent middle or end START
This is another start line without a middle or an end START
This is a start line START
This is a middle line MIDDLE
This is the last line END
content <- c("This is a start line" , "This is a middle line" , "This is a middle line" ,"This is the last line" ,
"This is a start line with a subsequent middle or end" , "This is another start line without a middle or an end" ,
"This is a start line" , "This is a middle line" , "This is the last line")
ChatPosition <- c("START" , "MIDDLE" , "MIDDLE" , "END" , "START" ,"START" , "START" ,"MIDDLE" , "END")
df <- data.frame(content, ChatPosition)
我想刪除它包含一個開始,但該行僅在下一行在ChatPosition列中不包含MIDDLE或END。
content ChatPosition
This is a start line START
This is a middle line MIDDLE
This is a middle line MIDDLE
This is the last line END
This is a start line START
This is a middle line MIDDLE
This is the last line END
nrow(df)
jjj <- 0
for(jjj in 1:nrow(df))
{
# Check of a match of two STARTS over over multiple lines.
if (df$ChatPosition[jjj]=="START" && df$ChatPosition[jjj+1]=="START")
{
print(df$content[jjj])
}
}
我能夠使用上面的代碼打印出我想要刪除的兩行我想知道什麼是最優雅的解決方案來刪除這些行?
如果在這裏有正確的方法或者是否有一個庫可以更容易地完成這種類型的事情,那麼這個方法也適用於嵌套方法嗎?
問候 喬納森
感謝伊莫是一個非常好的和優雅(非常R)解決方案。我已經試過了,它給出了所需的結果。非常感謝。 –