4

我有一个巨大的数据框,我只从中选择几行。然后我根据条件删除一些列。假设我选择了第 4460 行,如下所示:

        V1870 V107 V1315 V1867 V1544 V1207 V1252 V1765 V342 V429 V1826 V865 V1374
4460     0    0     3     0     5     0     2     0    4    0     0    0     0

问题是我需要将此行转换为一个简单的向量(这意味着我应该去掉所有的列/行名称),以便我可以将它传递给另一个函数。我希望能够得到以下结果:

    [1] 0 0 3 0 5 0 2 0 4 0 0 0 0

我尝试了as.listand as.vector,但没有一个给出我期望的结果。任何想法?

4

3 回答 3

6

mtcars数据示例

mydata<-mtcars
k<-mydata[1,]
          mpg cyl disp  hp drat   wt  qsec vs am gear carb
Mazda RX4  21   6  160 110  3.9 2.62 16.46  0  1    4    4
names(k)<-NULL

unlist(c(k))
 [1]  21.00   6.00 160.00 110.00   3.90   2.62  16.46   0.00   1.00   4.00   4.00

根据@Ananda 更新:unlist(mydata[1, ], use.names = FALSE)

于 2013-10-13T00:14:19.400 回答
1

我认为它已经是一个向量,只有每个元素中的名称(从 data.frame 继承)。

    #random df
    DF = data.frame(col1 = sample(1:10, 10), col2 = sample(1:10,10), col3 = sample(1:10, 10))

    DF[5,]
      col1 col2 col3
    5    3    7    5

    mode(DF[5,]) 
    [1] "list"

    mode(unlist(DF[5,]))
    [1] "numeric"

    names(DF[5,])
    [1] "col1" "col2" "col3"

    sum(DF[5,]) # computations are naturally done
    [1] 15

但是,要摆脱名称,您可以:

    unname(unlist(DF[5,]))
    [1] 3 7 5
于 2013-10-13T00:17:42.970 回答
0

尝试使用行索引。

情商

list <- yourdataframe[4460, ]
于 2013-10-13T00:04:31.937 回答