2017-08-12 69 views
0

我似乎無法找到與我的特定問題相關的任何內容,所以我在此處詢問。 我有我原來的數據幀在這裏:將行單元格值轉換爲R中的單列

Sample#, Fert_A_Mean, Fert_B_Mean, Fert_C_Mean, Fert_D_Mean 
1  987,   384,   672,   364 
2  567,   845,   398,   243 

而且我希望能夠重組這樣的:

Sample#, Fert_Mean 
1  987 
1  384 
1  672 
1  364 
2  567 
2  845 
2  398 
2  243 

我發現對堆棧交換一些類似的主題,such as here

但在這種情況下使用't()'似乎不起作用......或者我做錯了什麼。希望你們中的一位可以幫助我。非常感謝。使用R 3.4.1到R-studio。你爲你的方法推薦的任何軟件包都很好。

回答

0

您可以使用類似gathertidyr包:

library(tidyr) 
df2 <- gather(df, key=Fert_Mean, value=value, -Sample) 

df2 
    Sample Fert_Mean value 
1  1 Fert_A_Mean 987 
2  2 Fert_A_Mean 567 
3  1 Fert_B_Mean 384 
4  2 Fert_B_Mean 845 
5  1 Fert_C_Mean 672 
6  2 Fert_C_Mean 398 
7  1 Fert_D_Mean 364 
8  2 Fert_D_Mean 243 

您可以通過Sample去除Fert_Mean列,如果你不想要它,和排序,以獲得您的示例中的順序。

+1

嘿安德魯感謝 - 它絕對是非常接近...比我經過相當多的工作後來得更近!有沒有一種方法可以按照上面的示例按照排序的方式輸出它?謝謝這麼多人 – Alexander

+0

'df2 < - df2 [order(df2 $ Sample,df2 $ Fert_Mean)]'會按照'Sample'和Fert_Mean'的順序排序,我認爲這是您想要的順序。 –

+0

非常感謝你 - 你爲我節省了一堆時間。這種功能絕對有用 – Alexander

相關問題