在R编程中获取数据帧的下一行

时间:2016-01-08 13:59:38

标签: python r dataframe

我正在开发 R 编程项目..

我有一个数据帧(df),其中有大约790个观测值。我正在尝试从数据帧中提取某些行。与我尝试使用上面的行提取的行的唯一相似之处,它们都被命名为S_NAME:

  • 1只猫
  • 2 hat
  • 3 S_NAME
  • 4 tin
  • 5 sin
  • 6 S_NAME
  • 7 foo
  • 8 sin
  • 9 S_NAME
  • 10 tinn
  • 例如,我想提取所有关注S_NAME的第4,7行和第10行

    我不确定如何做到这一点,任何帮助都将非常感谢。我知道我已经标记了python,虽然该代码可能有助于我理解。

    2 个答案:

    答案 0 :(得分:2)

    我试试这个:

    ktore <- which(df[, 2]=="S_NAME")    # check in which row there is S_NAME
    df[ktore+1, ]   # extract rows which are after them
    
    4   4  tin
    7   7  foo
    10 10 tinn
    

    答案 1 :(得分:2)

    你的意思是这样吗?

    df <- data.frame(a=1:10, b=c("cat", "hat", "S_NAME", "fred", "joe", "S_NAME", "bob", "jeff", "S_NAME", "final"))
    print(df)
    df[which(df$b == "S_NAME")+1, ]
    
    # to extract rows inbetween rows containing S_NAME:
    S_NAME.inds <- which(df$b == "S_NAME")
    rows <- 1:nrow(df)
    df[df$b != "S_NAME" & rows > S_NAME.inds[1] & rows < S_NAME.inds[S_NAME.nums], ]