r - 将数据帧的行转换为向量

标签 r vector dataframe

我想从数据框的一行中创建一个向量。但我不想有行名和列名。我尝试了几种方法...但没有运气。

这是我的数据框:

> 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
  a b   c
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
  a b   c
1 1 2 2.6

但我真的想要这样的东西:

> newV <- c( 1,2,2.6)
> newV
[1] 1.0 2.0 2.6

最佳答案

当您从数据框中提取一行时,您会得到一个单行数据框。将其转换为数值向量:

as.numeric(df[1,])

正如 @Roland 所建议的,unlist(df[1,]) 会将单行数据帧转换为数字向量,而不删除名称。因此 unname(unlist(df[1,])) 是另一种稍微更明确的方法来获得相同的结果。

正如@Josh 下面评论的那样,如果您有一个不完全数字(字母、因子、混合...)数据框,则需要 as.character(df[1,])相反。

关于r - 将数据帧的行转换为向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14484728/

相关文章:

r - 如何根据一个变量对图进行排序

r - 如何制作我在此处发布的 PCA 图

c++ - 关于结构 vector 数组的问题

python - 按列条件清理数据框

python - 将 dict 的 dict 列表转换为 DataFrame

r - 使用 data.table 在单个条件下替换多列

r - Shiny 的数据表 : popup data about selected row in a new window

c++ - 如果我不想管理我指向的对象的内存,我应该使用 unique_ptr 吗?

c# - 从 C# 调用托管 C++ 中的 vector

R:将一个数据框中的行数据按组转换为另一个数据框中的列数据