我有一個大的數據幀,但小的例子是這樣的:移調一個數據幀保持第一列作爲標題
mydf <- data.frame(A = c(letters[1:10]), M1 = c(11:20), M2 = c(31:40), M3 = c(41:50))
我要轉置數據框和保持柱1(A)的列標題(字母[1:10])作爲變量名稱。以下是不成功代碼的劃傷試驗。
tmydf = data.frame(t(mydf))
names(tmydf) <- tmydf[1,]
謝謝;
我有一個大的數據幀,但小的例子是這樣的:移調一個數據幀保持第一列作爲標題
mydf <- data.frame(A = c(letters[1:10]), M1 = c(11:20), M2 = c(31:40), M3 = c(41:50))
我要轉置數據框和保持柱1(A)的列標題(字母[1:10])作爲變量名稱。以下是不成功代碼的劃傷試驗。
tmydf = data.frame(t(mydf))
names(tmydf) <- tmydf[1,]
謝謝;
這裏有一種方法
tmydf = setNames(data.frame(t(mydf[,-1])), mydf[,1])
有幾個類似的線程,像這樣:http://stackoverflow.com/questions/6645524/what-is-the-best-way-to-transpose-a-data-frame-in-r-and-to-設置一個列或這:http://stackoverflow.com/questions/6778908/r-transposing-a-data-frame。到目前爲止,我最喜歡你的答案+1。它很簡單,可靠並且保持數字。 –
像這樣的東西可能:
tmp <- as.data.frame(t(mydf[,-1]))
> colnames(tmp) <- mydf$A
> tmp
a b c d e f g h i j
M1 11 12 13 14 15 16 17 18 19 20
M2 31 32 33 34 35 36 37 38 39 40
M3 41 42 43 44 45 46 47 48 49 50
從Ramnath Data.table變式,指示在字符串變量名通緝。
mydf <- data.table(A = c(letters[1:10]), M1 = c(11:20), M2 = c(31:40), M3 = c(41:50))
tmydf <- setNames(data.table(t(mydf[,-"A"])), mydf[["A"]])
您不需要爲用冒號創建的序列調用'c'。所以'11:20'與'c(11:20)'相同,''[1:10]'與'c(字母[1:10])'相同。 –