【发布时间】:2018-10-20 21:30:44
【问题描述】:
我有一个 data.frame,其中包含一个字符变量和多个数字变量,如下所示:
sampleDF <- data.frame(a = c(1,2,3,"String"), b = c(1,2,3,4), c= c(5,6,7,8), stringsAsFactors = FALSE)
看起来像这样:
a b c
1 1 1 5
2 2 2 6
3 3 3 7
4 String 4 8
我想转置这个 data.frame 并让它看起来像这样:
V1 V2 V3 V4
1 1 2 3 String
2 1 2 3 4
3 5 6 7 8
我试过了
c<-t(sampleDF)
还有
d<-transpose(sampleDF)
但这两种方法都导致 V1、V2 和 V3 现在是字符类型,尽管只有数字值。
我知道这已被多次询问。但是,我还没有找到合适的答案来解释为什么在这种情况下 V1、V2 和 V3 也被转换为字符。
有什么方法可以确保这些列保持数字?
非常感谢您为这个问题的重复性质道歉。
编辑:
as.data.frame(t(sampleDF)
没有解决问题:
'data.frame': 3 obs. of 4 variables:
$ V1: Factor w/ 2 levels "1","5": 1 1 2
..- attr(*, "names")= chr "a" "b" "c"
$ V2: Factor w/ 2 levels "2","6": 1 1 2
..- attr(*, "names")= chr "a" "b" "c"
$ V3: Factor w/ 2 levels "3","7": 1 1 2
..- attr(*, "names")= chr "a" "b" "c"
$ V4: Factor w/ 3 levels "4","8","String": 3 1 2
..- attr(*, "names")= chr "a" "b" "c"
【问题讨论】:
标签: r dataframe character numeric transpose