重塑2列

时间:2014-05-14 16:05:07

标签: r reshape

您好我需要将数据的layoyt更改为宽矩阵

我的数据看起来像这样

data <- data.frame( 
  species = c("rabbit", "rabbit", "fox", "rabbit", "rabbit", "rabbit"),
  transect = c("EH1", "EH1", "EH1", "EH2", "EH2", "EH2")
  )


species  transect
rabbit    EH1
rabbit    EH1
fox       EH1
rabbit    EH2
rabbit    EH2
rabbit    EH2

我想重新安排它:

          EH1  EH2
fox        1    0
rabbit     2    3

表格给出了这样的结果

species transect freq
rabbit    EH1     2
fox       EH1     1
rabbit    EH2     3
fox       EH2     0

我不是专家,我一直在尝试使用ddply和重塑,但我没有管理,所以解决问题。

祝你好运

1 个答案:

答案 0 :(得分:2)

非常简单地使用基本R函数:

table(data)
#        transect
#species  EH1 EH2
# fox      1   0
# rabbit   2   3

编辑:为了响应您的编辑,您可以使用:

library(reshape2)
melt(table(data))
#  species transect value
#1     fox      EH1     1
#2  rabbit      EH1     2
#3     fox      EH2     0
#4  rabbit      EH2     3

获取您请求的第二个输出。