我有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
函数不起作用(它返回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
答案 0 :(得分:20)
请参阅?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
答案 1 :(得分:1)
我有来自csv的数据框
x <- as.numeric(dataframe$column_name)
工作得很好。 (与dataframe[3]
相同,3是我的列索引无效)
答案 2 :(得分:0)
请注意关于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个元素,您也必须从数据框中选择列表元素。