Khi gọi slice(df, i)
trong gói dplyr cho R, nếu chỉ mục hàng tôi yêu cầu không tồn tại (nrows < i
), nó xuất hiện để trả về tất cả các hàng nhưng nhóm đầu tiên, như Tôi đã gọi số slice(df, -1)
.Hành vi lạ trong lát dplyr cho R
Ví dụ:
library(dplyr)
c1 <- c("a","b","c")
c2 <- 1:3
df <- data.frame(c1,c2)
slice(df,2)
Kết quả sẽ được như mong đợi:
b 2
Nhưng nếu tôi gọi
slice(df, 5)
kết quả là mỗi hàng nhưng hàng đầu tiên :
b 2
c 3
Điều này đặc biệt khó chịu khi sử dụng group_by()
và THEN gọi slice()
trên các nhóm. Có lý do hợp lý nào không vì sao slice()
đang làm việc này?
Có vẻ như trả về (các) hàng chứa NA cho các chỉ mục hàng lớn hơn 'nrows' trong nhóm không đủ cao để tạo slice được yêu cầu có thể là kết quả hữu ích.
Điều này xuất hiện khi tôi đang cố gắng trích xuất kết quả được xếp hạng từ mỗi nhóm, nhưng một số nhóm không có đủ dữ liệu trong khi những nhóm khác lại làm. ví dụ. "Liệt kê nhân viên bán hàng có doanh thu cao nhất thứ 10 từ mỗi khu vực". Nhưng ở một trong những khu vực chỉ có 8 nhân viên bán hàng.
Vui lòng thêm ví dụ có thể tái sản xuất vào bài đăng của bạn. –
Thông tin thêm về cách cung cấp [ví dụ tái sản xuất tối thiểu] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610#5963610). – Jaap
Cảm ơn lời khuyên. – huff