Re: [问题] 资料堆叠

楼主: celestialgod (天)   2015-08-06 22:23:15
※ 引述《SFMAndroid (安卓发送)》之铭言:
: [问题类型]:
: 程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
: [软件熟悉度]:
: 入门(写过其他程式,只是对语法不熟悉)
: [问题叙述]:
: 最近在处理一笔资料 大概长这样:
: user web code
: Shelly yam A1
: Bruce finance A2
: Shelly yam A1
: Kate finance A2
: Bruce yam A1
: Bruce google A3
: 希望能够用堆叠(应该是堆叠吧)的方法让资料变成这样:
: user web code1 code2
: Shelly yam A1 A1
: Bruce finance A2
: Bruce yam A1
: Bruce google A3
: Kate finance A2
其实跟#1Lmlfyuv (R_Language)问题一模一样
程式我就直接搬过来了...
library(data.table) # 只用到fread
library(dplyr) # 用到group_by, mutate, %>%
library(tidyr) # 用到spread (可以用reshape2的dcast代替)
DT = fread("user,web,code
Shelly,yam,A1
Bruce,finance,A2
Shelly,yam,A1
Kate,finance,A2
Bruce,yam,A1
Bruce,google,A3")
DT %>% group_by(user, web) %>%
mutate(code_name = paste0("code_", 1:n())) %>%
spread(code_name, code, fill = "")
# user web code_1 code_2
# 1 Bruce finance A2
# 2 Bruce google A3
# 3 Bruce yam A1
# 4 Kate finance A2
# 5 Shelly yam A1 A1
作者: SFMAndroid (安卓发送)   2015-08-07 09:05:00
刚试了一下 他出现Error in eval(expr, envir, enclos) : object 'web' not found的讯息@@恩恩直接用版大fread那个我用web另外给一个vector之后 mutate可以跑出来变成原资料多一栏code_name 里面code_1 code_2好的 谢谢~但spread那出现 Error in dim(ordered) <- c(attr(row_id, "n"), attr(col_id, "n")) : dims[ product 10]do not match the length of object [0]版大你太神啦!!! 加上colname后就ok了!!!五体投地

Links booklink

Contact Us: admin [ a t ] ucptt.com