我有一个大的数据帧,但小的例子是这样的:移调一个数据帧保持第一列作为标题
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])'相同。 –