我試圖尋找多年運行在一個數據幀(最好使用plyr)查找範圍中的數字
的運行,我想從這個獲得:
require(plyr)
dat<-data.frame(
name=c(rep("A", 11), rep("B", 11)),
year=c(2000:2010, 2000:2005, 2007:2011)
)
爲此:
out<-data.frame(
name=c("A", "B", "B"),
range=c("2000-2010", "2000-2005", "2007-2011"))
這是很容易識別每個組是否具有多年連續運行:
ddply(dat, .(name), summarise,
continuous=(max(year)-min(year))+1==length(year))
我該如何將組「B」分解爲兩個範圍?
任何想法或策略將非常感激。
感謝
+1非常好的解決方案。 –
真棒 - 我從來沒有想到這一點。對於plyr,我可以用ddply(dat,。(name,id2),彙總,粘貼(min(year),「:」,max(year),sep =「」))來完成它。 –
@EdG或'ddply(dat,「id2」,summary,Range = paste(range(year),collapse =「 - 」))' –