整理r中的数据

时间:2015-02-20 18:11:21

标签: r formatting

我的数据如下:

Value   Species
1       warb
1       warb
2       warb
3       tit
2       tit
3       tit

我希望它看起来像

warb   tit
1      3
1      2
2      3

2 个答案:

答案 0 :(得分:2)

在R基础上,我建议unstack

unstack(mydf)
#   tit warb
# 1   3    1
# 2   2    1
# 3   3    2

由于这实际上是一个重塑问题,您还可以考虑添加一个基于“Species”的ID列(从我的“splitstackshape”包中轻松使用getanID),然后重新整形为“宽”形式。

示例:

library(splitstackshape) ## mostly for getanID
dcast.data.table(getanID(mydf, "Species"), 
                 .id ~ Species, value.var = "Value")
#    .id tit warb
# 1:   1   3    1
# 2:   2   2    1
# 3:   3   3    2

reshape(getanID(mydf, "Species"), 
        direction = "wide", idvar = ".id", 
        timevar = "Species")
#    .id Value.warb Value.tit
# 1:   1          1         3
# 2:   2          1         2
# 3:   3          2         3

答案 1 :(得分:1)

如果您的数据是

Value<-c(1,1,2,3,2,3)
Species<-c("warb","warb","warb","tit","tit","tit")
df<-data.frame(Value,Species)

result <- as.data.frame(tapply(df$Value,df$Species,list))