我有一個數據幀,看起來像這樣:使用merged.stack從大表創建一個長表(或重塑)
ID rd_test_2011 rd_score_2011 mt_test_2011 mt_score_2011 rd_test_2012 rd_score_2012 mt_test_2012 mt_score_2012
1 A 80 XX 100 NA NA BB 45
2 XX 90 NA NA AA 80 XX 80
我想編寫一個腳本,將用於標識,唐」 t在yy_test_20xx列中包含NA,創建一個新的數據框,其中包含從列標題獲取的主題,測試名稱,測試分數和從列標題獲取的年份。所以,在這個例子中,ID 1會有三個條目。預計輸出應該是這樣的:
ID Subject Test Score Year
1 rd A 80 2011
1 mt XX 100 2012
1 mt BB 45 2012
2 rd XX 90 2011
2 rd AA 80 2012
2 mt XX 80 2012
我已經試過merged.stack這在這個意義上,我得到的輸出是在馬路上是正確的作品既重塑和各種形式的,但我不能瞭解投入不夠好到那裏一路:與重塑
library(splitstackshape)
merged.stack(x, id.vars='id', var.stubs=c("rd_test","mt_test"), sep="_")
我有更多的成功(變得更近):
y<- reshape(x, idvar="id", ids=1:nrow(x), times=grep("test", names(x), value=TRUE),
timevar="year", varying=list(grep("test", names(x), value=TRUE), grep("score",
names(x), value=TRUE)), direction="long", v.names=c("test", "score"),
new.row.names=NULL)
1. [你嘗試過什麼(http://mattgemmell.com/2008/12/08/what-you-you-tried /)到目前爲止? 2.預期的產出會很有用。 – zero323
您正在尋找'reshape' –
@SeñorO我無法識別重塑的正確參數是什麼,因爲我正在使用的數據框有大約100列和大約150000行,我只想重塑一些專欄。 – n8sty