當在R的dplyr包中調用slice(df, i)
時,如果我索要的行索引不存在(nrows < i
),它似乎會返回除組中第一個組的所有行,如我曾打電話給slice(df, -1)
。dplyr slice中的奇怪行爲R
例如:
library(dplyr)
c1 <- c("a","b","c")
c2 <- 1:3
df <- data.frame(c1,c2)
slice(df,2)
結果將如預期那樣:
b 2
但如果我叫
slice(df, 5)
結果是每一行但第一排:
b 2
c 3
這對使用group_by()
和THEN調用slice()
的組尤其令人厭煩。 slice()
這樣做是否有合乎邏輯的原因?
看起來好像返回的行中填充了NAs,對於行數大於'nrows'的行不夠「高」來產生請求的分片可能是一個有用的結果。
這是因爲我試圖提取每個組的排名結果,但有些組沒有足夠的數據,而其他組卻沒有。例如「列出每個地區銷售額第十位的銷售人員。」但在其中一個地區只有8名銷售人員。
請在您的文章中添加一個可重現的示例。 –
有關如何給出[最小可重現示例]的更多信息(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610#5963610)。 – Jaap
感謝您的提示。 – huff