R_Language 板


LINE

我不知道怎麽直接产生wide form的测试资料 (主要是rank1,2,3抽出不放回不知道怎麽写) 所以我先用成long table再转成wide table... :P library(dplyr) library(tidyr) # 产生测试资料: set.seed(10) name1 <- c("jane", "zack", "andy", "albee", "may") name2 <- c("jona", "candy", "clair", "ben", "bobby") # long table dat <- data.frame(Time=rep(seq(Sys.Date(), length.out=5, by="1 day"),each=6), Class=rep(rep(c("xxxx","yyyy"),each=3),5), Rank=rep(sapply(1:3,function(x)paste0("rank",x)),10), Student=c(sample(namel,size=3,replace=F), sample(name2,size=3,replace=F), sample(name1,size=3,replace=F), sample(name2,size=3,replace=F), sample(name1,size=3,replace=F), sample(name2,size=3,replace=F), sample(name1,size=3,replace=F), sample(name2,size=3,replace=F), sample(name1,size=3,replace=F), sample(name2,size=3,replace=F))) # 转成wide table dat <- dat %>% spread(Rank,Student) ##### > dat Time Class rank1 rank2 rank3 1 2017-04-20 xxxx andy zack albee 2 2017-04-20 yyyy ben jona bobby 3 2017-04-21 xxxx zack may albee 4 2017-04-21 yyyy clair bobby candy 5 2017-04-22 xxxx jane andy zack 6 2017-04-22 yyyy clair jona ben 7 2017-04-23 xxxx zack albee andy 8 2017-04-23 yyyy ben bobby candy 9 2017-04-24 xxxx andy may albee 10 2017-04-24 yyyy candy ben bobby ##### (OK,终於可以开始回答问题了XD) 1. wide table 转成long table long <- dat %>% gather(Rank,Student,-c(Time,Class)) %>% arrange(Time,Class) %>% mutate(Rank=substr(Rank,5,5)) 主要是gather(),後面arrange()跟mutate只是整理起来好看而已 ##### > long Time Class Rank Student 1 2017-04-20 xxxx 1 andy 2 2017-04-20 xxxx 2 zack 3 2017-04-20 xxxx 3 albee 4 2017-04-20 yyyy 1 ben 5 2017-04-20 yyyy 2 jona 6 2017-04-20 yyyy 3 bobby 7 2017-04-21 xxxx 1 zack 8 2017-04-21 xxxx 2 may 9 2017-04-21 xxxx 3 albee 10 2017-04-21 yyyy 1 clair ... ##### 2. long table 转成 wide table (spread by Time) res2 <- long %>% spread(Time,Rank,fill="") ##### > res2 Class Student 2017-04-20 2017-04-21 2017-04-22 2017-04-23 2017-04-24 1 xxxx albee 3 3 2 3 2 xxxx andy 1 2 3 1 3 xxxx jane 1 4 xxxx may 2 2 5 xxxx zack 2 1 3 1 ..... ##### 个人觉得只要从long table出发,要怎麽转都不难。 (没记错的话tidy data的原则大概就是整成类似long table的样子) ※ 引述《chy0253350 (chy)》之铭言: : [问题类型]: : : 程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来) : : [问题叙述]: : 我有一笔资料大致上是这样的格式: : Time Class rank1 rank2 rank3 : 2017/4/6 XXXX A1 B1 D1 : 2017/4/7 YYYY A2 C2 B2 : 2017/4/7 XXXX A1 C1 E1 : 2017/4/7 YYYY B2 A2 C2 : A1, B1, C1, A2, C2....都是人名,分别为XXXX和YYYY班的学生。 : 所以第一笔资料就是4/6号,XXXX班的学生,第一名是A1、第二名是B1,最後是D1。 : 但是这样的资料无法制作折线图观察学生们在这两天的排名进退步状况, : 实际资料的时间会横跨两周,班级、人名和排名也都较多。 : 所以,会希望资料能转换成: : Time Class student rank : 2017/4/6 XXXX A1 1 : 2017/4/6 XXXX B1 2 : 2017/4/6 XXXX D1 3 : 2017/4/6 YYYY A2 1 : 2017/4/6 YYYY B2 3 : 2017/4/6 YYYY C2 2 : 2017/4/7 XXXX A1 1 : 2017/4/7 XXXX C1 2 : 2017/4/7 XXXX E1 3 : 2017/4/7 YYYY A2 2 : 2017/4/7 YYYY B2 1 : 2017/4/7 YYYY C2 3 : 如此资料才可以绘制摺线图吧? : 过去有用过dplyr进行筛选或比对等功能, : 不过现在这种格式就不知道该怎麽用了... : ============================================================== : 透过reshape2的melt顺利转换成长表格了, : 那麽我能否再转换成: : student 2017/4/6 2017/4/7 : A1 1 1 : B1 2 : C1 2 : D1 3 : E1 3 : A2 1 2 : B2 3 1 : C2 2 3 : 我记得应该很容易阿,可是怎麽觉得自己变好笨.. --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.224.213.201
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1492630526.A.A7D.html







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP