15

我有这个data.frame

> print(v.row)
    X1  X2  X3  X4  X5  X6  X7  X8  X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24
57 177 165 177 177 177 177 145 132 126 132 132 132 126 120 145 167 167 167 167 165 177 177 177 177
> dput(v.row)
structure(list(X1 = 177, X2 = 165, X3 = 177, X4 = 177, X5 = 177, 
    X6 = 177, X7 = 145, X8 = 132, X9 = 126, X10 = 132, X11 = 132, 
    X12 = 132, X13 = 126, X14 = 120, X15 = 145, X16 = 167, X17 = 167, 
    X18 = 167, X19 = 167, X20 = 165, X21 = 177, X22 = 177, X23 = 177, 
    X24 = 177), .Names = c("X1", "X2", "X3", "X4", "X5", "X6", 
"X7", "X8", "X9", "X10", "X11", "X12", "X13", "X14", "X15", "X16", 
"X17", "X18", "X19", "X20", "X21", "X22", "X23", "X24"), row.names = 57L, class = "data.frame")

我会删除所有行名和列名以获得简单的vector. 但是该as.vector函数不起作用(它返回 a data.frame)。

> as.vector(v.row)
    X1  X2  X3  X4  X5  X6  X7  X8  X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24
57 177 165 177 177 177 177 145 132 126 132 132 132 126 120 145 167 167 167 167 165 177 177 177 177
4

3 回答 3

24

?unlist

给定一个列表结构 x,unlist 将其简化为一个向量,该向量包含出现在 x 中的所有原子成分。

unlist(v.row)
[1] 177 165 177 177 177 177 145 132 126 132 132 132 126 120 145 167 167 167
       167 165 177 177 177 177

编辑

您也可以这样做as.vector,但您需要提供正确的模式:

 as.vector(v.row,mode='numeric')
 [1] 177 165 177 177 177 177 145 132 126 132 132 132 126 120 145 167 167
      167 167 165 177 177 177 177
于 2013-02-17T19:16:51.833 回答
2

只是关于 agstudy 答案的第二部分的注释:

df <- data.frame(1:10) 
as.vector(df, mode="integer") #Error

as.vector(df[[1]],mode="integer") #Works; 
as.vector(df[[1]]) #Also works

即,显然您必须从数据框中选择列表元素,即使只有 1 个元素。

于 2019-04-13T16:24:00.660 回答
1

我有这个来自 csv 的数据框

x <- as.numeric(dataframe$column_name)

工作得很好。(与dataframe[3]3 相同,我的列索引不起作用)

于 2017-05-31T16:54:36.853 回答