将一行dataframe转换为向量
我想从一行数据框中创build一个向量。 但我不想排名和列名。 我尝试了几件事情,但没有运气。
这是我的数据框架:
> df <- data.frame(a=c(1,2,4,2),b=c(2,6,2,1),c=c(2.6,8.2,7.5,3)) > df abc 1 1 2 2.6 2 2 6 8.2 3 4 2 7.5 4 2 1 3.0
我试过了:
> newV <- as.vector(df[1,]) > newV abc 1 1 2 2.6
但我真的很想看到这样的东西:
> newV <- c( 1,2,2.6) > newV [1] 1.0 2.0 2.6
任何帮助,非常感谢。
从数据框中提取单个行时,将获得一行数据框。 将其转换为数字vector:
as.numeric(df[1,])
正如@Roland所build议的, unlist(df[1,])
将把一行dataframe转换为一个数字向量而不会丢失名称。 因此, unname(unlist(df[1,]))
是另一个更简单明了的方法来得到相同的结果。
我build议unlist
,它保持名称。
unlist(df[1,]) abc 1.0 2.0 2.6 is.vector(unlist(df[1,])) [1] TRUE
如果你不想要一个命名向量:
unname(unlist(df[1,])) [1] 1.0 2.0 2.6
如果你不想改变为数字,你可以试试这个。
> as.vector(t(df)[,1]) [1] 1.0 2.0 2.6
数据框的列已经是vector,你只需要把它们拉出来。 请注意,您将逗号之后的列放在您之前,而不是之前:
> newV <- df[,1] > newV [1] 1 2 4 2
如果你真的想要一排,然后做本说的话,请在将来用正确的词。
unlist
和unname
没有工作我,它不停地搞砸了。 as.numeric(t(df[1,]))
为我做了诡计。