【问题标题】:Converting a column from a table into a matrix将表中的列转换为矩阵
【发布时间】:2014-10-16 16:51:54
【问题描述】:

我的目标是将 R 中的数据表中的列转换为矩阵,以便我可以将其合并到以后在我的项目中使用。 从数据集中,我将“AGE”列中的所有值保存到一个变量中:

AGE.data <- sample_data(phy.norm.new)[,'AGE']

这样做产生了:

样本数据:[240 个样本,1 个样本变量]:

年龄

AGE.109 56

AGE.236 50

AGE.201 34

AGE.96 64

AGE.21 66

年龄.56 54

年龄.64 65

年龄.225 76

AGE.24 70

年龄.57 84

AGE.117 50

年龄.177 65

...

(并非所有行都已在此块引用中输入,仅几行是为了说明它在控制台中的样子)。

为了将此列中的值转换为矩阵,我使用了:

mat.AGE.data <- matrix(AGE.data)

但是,我没有得到显示所有年龄值的 240 行 x 1 列矩阵。相反,它会显示在控制台中。

mat.AGE.data

     [,1]       
[1,] Integer,240

我已阅读全面的 R 教程,但我仍然不确定如何解决此问题。提前致谢。

编辑: 使用 str(AGE.data) 我得到了这个输出:

'data.frame':240 obs。 1 个变量:

具有 4 个插槽的正式类 'sample_data' [package "phyloseq"]

..@ .Data :1 的列表

.. ..$ : int 56 50 34 64 66 54 65 76 70 84 ...

..@ 名称:chr "AGE"

..@ row.names: 字符 "CRC.109" "CRC.236" "CRC.201" "CRC.96" ...

..@ .S3Class : chr "data.frame"

dput(head(AGE.data, 10))

new("sample_data"

, .Data = list(c(56L, 50L, 34L, 64L, 66L, 54L, 65L, 76L, 70L, 84L))

, 姓名 = "年龄"

, row.names = c("AGE.109", "AGE.236", "AGE.201", "AGE.96", "AGE.21", "AGE.56",

               "AGE.64", "AGE.225", "AGE.24", "AGE.57")

, .S3Class = "data.frame"

)

【问题讨论】:

  • 请查看str(AGE.data)。此外,尚不清楚这是data.table,还是table,还是data.frame
  • @akrun 我编辑了我的帖子以包含 str(AGE.data) 的输出。
  • 你能不能dput输出,即dput(head(AGE.data, 10))。好像是一个列表输出。
  • @akrun 我已经编辑了我的帖子以包含它
  • 它给了我错误。我没有安装包phyloseq。希望有人会回应。

标签: r matrix


【解决方案1】:

原发帖者使用matrix(as.numeric(unlist(AGE.data)),nrow=nrow(AGE.data))解决了这个问题

【讨论】:

    猜你喜欢
    • 2011-01-29
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 2015-05-27
    相关资源
    最近更新 更多