【问题标题】:Convert data frame into vector将数据框转换为向量
【发布时间】:2016-06-05 08:55:47
【问题描述】:

我有一个单行/列dataframe,我想将其转换为一个值。

df <- data.table(x=c(300))
>#     x
># 1: 300

我已经做到了:

b <- as.list(df)[[1]]
># [1] 300

这样identical(b, 300) == T

有没有更简单的方法来实现这一点?我知道这是一个非常简单的问题,但我找不到解决方案。帮忙?

【问题讨论】:

  • 好吧,因为将 data.frame's 转换为矢量最有意义,如果你只有一个矢量(或者最终如果你有相同类型的所有列)我认为你可以只使用 df$x 或 @ 987654326@ 试试看:identical(df$x, 300) ??
  • @mtoto,unlist 不起作用:u
  • @digEmAll 谢谢。我认为df[[1]] 效果很好
  • @RafaelPereira:是的,但请注意,这不是将 data.frame 转换为向量(如您所问),而是将 data.frame 的列(实际上是 data.table准确地说)成一个向量;)

标签: r dataframe


【解决方案1】:

基本上,数据框是列表,因此您可以调用unlist(df)

【讨论】:

  • 它不起作用:u &lt;- unlist(df) ; identical(u,300) 返回FALSE
  • 它返回 false 因为 unlist 也将列的名称作为向量名称返回......但值是相等的。试试identical(unname(unlist(df)),300)
【解决方案2】:

除了使用unlist,您还可以简单地这样做:

x <- df$x

结果是一个法线向量,其值来自x

> x
[1] 300

【讨论】:

    猜你喜欢
    • 2011-02-02
    • 2017-09-25
    • 1970-01-01
    • 2022-07-06
    • 1970-01-01
    • 2013-01-07
    • 2015-04-01
    • 2021-06-25
    相关资源
    最近更新 更多