2016-08-14 89 views
0

我有類似下面的一個數據幀,如何將列級別值轉換爲R中的單個行?

Name | ID    | SET | COUNT | 
------ | ------   |------ | ------ | 
Value | 44000001005 | 0  | 24  | 
Value | 10000000019659 | 0  | 29  | 
Value | 10000000019659 | 1  | 5  | 

我需要的是一樣的東西,結果,

Name | ID    | 0 | 1  | 
------ | ------   |------ | ------ | 
Value | 44000001005 | 24 | 0  | 
Value | 10000000019659 | 29 | 5  | 

可以這樣做或我將不得不重新工作的數據集? 我對R相對來說比較陌生,所以我可能錯過了一些非常明顯的邏輯,但是如果有人能指導我,我會很感激。 謝謝。

+0

如果您需要幫助,您可能必須比這更具體。我不明白這個問題,因爲它是目前寫的。 – smacdonald

+0

@smacdonald對不起。我編輯了格式。希望它更好。 – RBK

回答

1

如果要將格式從長格式更改爲寬格式,可以使用tidyr軟件包中的spread函數。還有其他的軟件包和可能性,但這是我的最愛。

如果您是R的新手,請注意您必須先使用install.packages(「tidyr」)安裝軟件包。

Name <- c("Value","Value","Value") 
ID <- c(6546465445,5464564,5464564) 
SET <- c(0,0,1) 
COUNT <- c(24,29,5) 

df <- cbind.data.frame(Name,ID,SET,COUNT,stringsAsFactors=FALSE) 

library(tidyr) 

spread(data=df,key=SET,value = COUNT,fill=0) -> df_wide 

有關功能的詳細信息請參閱文檔?傳播。

+1

這工作完美。非常感謝。文檔幫助我更清晰地瞭解了該功能。 – RBK