2016-01-08 134 views
-3

我上[R規劃項目工作的下一行..獲取R A數據幀編程

我有一個數據幀(DF)與約790觀察。我正在試圖從某些行數據幀。

  • 1貓
  • 2帽
  • 3 S_NAME
  • 4錫
  • 5罪
  • :與該行我想以上的行提取,這是所有命名S_NAME唯一的相似
  • 6 S_NAME
  • 7 FOO
  • 8罪
  • 9 S_NAME
  • 10 TINN
  • 因此,例如,我會想提取行4,7和10,都遵循S_NAME

    我不確定如何做到這一點,任何幫助將是巨大的感謝。我知道我已經標記了Python,儘管這段代碼可能會幫助我理解。

    回答

    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 
    
    +0

    嗨,我將如何獲得所有行中介s_name請?謝謝@marta – tony

    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], ] 
    
    +0

    我該如何解決S_NAME間的所有問題。謝謝 – tony

    +0

    您是指不是S_NAME的行或S_NAME之間的行(即排除第一個S_NAME之前和最後一個S_NAME之後的行)? – doctorG

    +0

    是第一個S_NAME與第二個S_NAME之間的第二行,然後是第二個S_NAME與第三個S_NAME之間的行。謝謝 – tony