Tôi đang cố gắng để tìm chạy của năm trong một khung dữ liệu (lý tưởng sử dụng plyr)Finding dao động trong chạy của số
Tôi muốn nhận được từ này:
require(plyr)
dat<-data.frame(
name=c(rep("A", 11), rep("B", 11)),
year=c(2000:2010, 2000:2005, 2007:2011)
)
Để này:
out<-data.frame(
name=c("A", "B", "B"),
range=c("2000-2010", "2000-2005", "2007-2011"))
Thật dễ dàng đủ để xác định xem mỗi nhóm có một hoạt động liên tục của năm:
ddply(dat, .(name), summarise,
continuous=(max(year)-min(year))+1==length(year))
Tôi làm cách nào để chia nhỏ nhóm "B" thành hai phạm vi?
Bất kỳ ý tưởng hoặc chiến lược nào sẽ thực sự được đánh giá cao.
Cảm ơn
+1 giải pháp rất hay. –
Tuyệt vời - Tôi chưa bao giờ nghĩ về điều đó. Đối với plyr tôi có thể hoàn thành nó với ddply (dat,. (Tên, id2), tóm tắt, dán (min (năm), ":", max (năm), sep = "")). –
@EdG hoặc 'ddply (dat," id2 ", tóm tắt, Phạm vi = dán (phạm vi (năm), thu gọn =" - "))' –