簡體   English   中英

需要將列轉換為R中的行

[英]Need to convert columns to rows in R

我的數據看起來像

a     b     c
1     5     4
3     6     1
2     5     3

我想轉換它將所有列轉換為行,並希望輸出像

r1       r2     r3     r4
a        1       3      2
b        5       6      5
c        4       1      3

提前致謝

我們可以轉置數據集並轉換為data.frame ,第一列作為行名稱。

m1 <- t(df1)
d2 <- data.frame(r1= row.names(m1), m1, row.names=NULL) 

編輯:包括row.names參數在data.frame調用(從@Richard斯克里文的評論)

或者正如@Ananda Mahto所提到的,我們可以使用names(df1)來創建'r1'列,從而跳過在全局環境中創建對象的過程。

d2 <- data.frame(r1=names(df1), t(df1))

或者另一種選擇是melt/dcast 我們將data.frame轉換為matrixmelt為'long'格式,然后dcast其轉換為'wide'格式。

library(reshape2)
dcast(melt(as.matrix(df1)), Var2~paste0('r', Var1), value.var='value')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM