【问题标题】:data.frame conversion in rr中的data.frame转换
【发布时间】:2015-03-29 08:47:38
【问题描述】:

我有一个带有一堆列的 df。每行代表每次采样行程中看到的一个物种。我想将其转换为矩阵或数据框,其中每一列是一个物种,每一行是一个采样行程。我想将其转换为使用纯函数进行分析。 我基本上想要这个的反面melting data.frame in R

原始格式

data.frame(speciesname=c("a","b","c","a"),sample.id=c(1,1,2,3),count=c(10,1,5,2))

speciesname sample.id count
1           a         1    10
2           b         1     1
3           c         2     5
4           a         3     2

我想把它变成这样:

   a b c
1 10 1 0
2  0 0 5
3  2 0 0

我试图不使用 if 语句制作一些可怕的双重 for 循环,但如果那是我必须做的......

【问题讨论】:

  • library(reshape2);acast(df1, sample.id~speciesname, value.var='count', fill=0)也可以用

标签: r dataframe vegan


【解决方案1】:

使用xtabs()

xtabs(count ~ sample.id + speciesname, df)
#          speciesname
# sample.id  a  b  c
#         1 10  1  0
#         2  0  0  5
#         3  2  0  0

【讨论】:

  • 谢谢。我永远也找不到那个功能。
猜你喜欢
  • 1970-01-01
  • 2013-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-03
相关资源
最近更新 更多