将数据帧转换为数字变量?

时间:2013-11-11 19:56:20

标签: r class dataframe numeric

我有一个data.frame格式的变量和大小(m乘n),我想将它转换为(m * n乘1)数值变量。我怎样才能做到这一点?例如,具有变量“x1”,其类别为“data.frame”和大小(4 * 5)

x1<-                
104.89  44.09   66.82   75.55   64.04
NA         136.91   60.57   62.29   64.01
NA         NA   87.18   66.76   80.19
NA         NA   NA  NA  NA

我想将“x1”转换为变量“x2”,如下所示,尺寸为(20 * 1),类别为“数字”

x2 <- 104.89    44.09   66.82   75.55   64.04       NA  136.91  60.57   62.29   64.01       NA         NA   87.18   66.76   80.19       NA         NA   NA  NA  NA

2 个答案:

答案 0 :(得分:2)

这样做你想要的吗?

c(t(x1))

答案 1 :(得分:0)

由于您的用例看起来像是一个只在一个角落中包含值的矩阵,因此您可以使用upper.tri。 E.g。

df=read.table(textConnection('
    104.89  44.09   66.82   75.55   64.04
    NA         136.91   60.57   62.29   64.01
    NA         NA   87.18   66.76   80.19
    NA         NA   NA  NA  NA'))
temp <- df[upper.tri(df)]
temp[!sapply(temp, is.na)]

[1] 44.09 66.82 60.57 75.55 62.29 66.76 64.04 64.01 80.19