我有數據幀減少行獨特的項目
test <- structure(list(
y2002 = c("freshman","freshman","freshman","sophomore","sophomore","senior"),
y2003 = c("freshman","junior","junior","sophomore","sophomore","senior"),
y2004 = c("junior","sophomore","sophomore","senior","senior",NA),
y2005 = c("senior","senior","senior",NA, NA, NA)),
.Names = c("2002","2003","2004","2005"),
row.names = c(c(1:6)),
class = "data.frame")
> test
2002 2003 2004 2005
1 freshman freshman junior senior
2 freshman junior sophomore senior
3 freshman junior sophomore senior
4 sophomore sophomore senior <NA>
5 sophomore sophomore senior <NA>
6 senior senior <NA> <NA>
而且我想Munge時間數據僅獲取每一行的各個步驟,如
result <- structure(list(
y2002 = c("freshman","freshman","freshman","sophomore","sophomore","senior"),
y2003 = c("junior","junior","junior","senior","senior",NA),
y2004 = c("senior","sophomore","sophomore",NA,NA,NA),
y2005 = c(NA,"senior","senior",NA, NA, NA)),
.Names = c("1","2","3","4"),
row.names = c(c(1:6)),
class = "data.frame")
> result
1 2 3 4
1 freshman junior senior <NA>
2 freshman junior sophomore senior
3 freshman junior sophomore senior
4 sophomore senior <NA> <NA>
5 sophomore senior <NA> <NA>
6 senior <NA> <NA> <NA>
我知道,如果我把每一行作爲一個向量,我可以做一些像
careerrow <- c(1,2,3,3,4)
pairz <- lapply(careerrow,function(i){c(careerrow[i],careerrow[i+1])})
uniquepairz <- careerrow[sapply(pairz,function(x){x[1]!=x[2]})]
我的困難是將這種行方式應用於我的數據表。我認爲lapply是要走的路,但到目前爲止我無法解決這個問題。
你需要它是一個有效的data.frame填充NA值或與每個ID相關的列表足夠了嗎? – mnel
我想統計相同的行,所以我認爲能夠將它作爲有效的data.frame是一件好事。或者列表清單是否便於執行此類計數? – dmvianna