【问题标题】:Converting data table to matrix R将数据表转换为矩阵 R
【发布时间】:2017-10-02 15:20:47
【问题描述】:

我有一个包含样本位置、物种名称和密度的数据表,如下所示:

    location     species    density
2   Abludomelita obtusata   12,92
3   Abludomelita obtusata   142,119
17  Abludomelita obtusata   12,92
42  Abludomelita obtusata   12,92
93  Abludomelita obtusata   12,92
2   Abra alba   155,039
3   Abra alba   710,594
6   Abra alba   12,92
15  Abra alba   12,92
17  Abra alba   12,92
18  Abra alba   38,76
27  Abra alba   684,755

我想把它转换成这样的矩阵型表格

Location    Abludomelita obtusata   Abra alba   etc
1   na  na  
2   12,92   155,039 
3   142,119 710,594 

我试过xtabs (xtabs(density ~ location + species,*filename*, na.action=0),但由于某种原因没有奏效 谢谢你的想法 阿尔杰

【问题讨论】:

  • 尝试使用df <- as.matrix(df)df <- matrix(df,nrow=nr, ncol=nc) 指定这些参数。不过,请记住,矩阵只能由数值组成。
  • 谷歌“R重塑宽格式”。另外,你为什么用sparse-matrix标记这个?
  • @Roland:我尝试了reshape 命令,并且成功了。谢谢。 sparse-matrix 标签需要去掉。

标签: r reshape


【解决方案1】:

这是你的意思吗?

library(reshape)
df <- data.frame(
location = c(2,3, 17, 42, 93, 2, 3, 6),
species = c('Abludomelita', 'Abludomelita', 'Abludomelita', 'Abludomelita', 'Abludomelita', 'Abra Alba', 'Abra Alba', 'Abra Alba'), 
density = c(12.92, 112.12, 123.12, 13.14, 16.23, 17.19, 76.12, 13.32))


cast(df, location ~ species)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 2018-10-06
    • 2012-05-20
    • 1970-01-01
    相关资源
    最近更新 更多