将r数据帧重塑为宽格式 [英] reshape r dataframe to wide format

查看:16
本文介绍了将r数据帧重塑为宽格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有简单的方法来改变这一点

id  date
A   Jan 2012
B   Jan 2012
C   Jan 2012
A   Feb 2012
B   Feb 2012
A   Mar 2012
B   MAr 2012

id  Jan 2012    Feb 2012    Mar 2012
A   T           T           T
B   T           T           T
C   T           F           F

dcastreshape需要我认为不需要的聚合函数(?)

推荐答案

按照您的建议使用dcast...

#  Please provide reproducible data next time!
set.seed(123)
dt <- data.frame( id = rep(c("A","B","C"),3 ), date = sample( month.name[1:3] , 9 , repl = TRUE ) , stringsAsFactors = FALSE )
#  id     date
#1  A  January
#2  B    March
#3  C February
#4  A    March
#5  B    March
#6  C  January
#7  A February
#8  B    March
#9  C February

require( reshape2 )
dcast( dt , id ~ date  , fun = function(x) length(x) > 0 , fill = FALSE )
#  id February January March
#1  A     TRUE    TRUE  TRUE
#2  B    FALSE   FALSE  TRUE
#3  C     TRUE    TRUE FALSE

或仅table作为@AnandaMahto建议...

table(dt) > 0
#   date
#id  February January March
#  A     TRUE    TRUE  TRUE
#  B    FALSE   FALSE  TRUE
#  C     TRUE    TRUE FALSE

在句法上肯定更简单!!

这篇关于将r数据帧重塑为宽格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆