[英]How to reshape dataframe with string variables?
我有一个带有文本数据的数据框。 看起来像这样:
var texts users
1 1 text1 user1
2 2 text2 user1
3 3 text3 user1
4 4 text4 user1
5 5 text5 user1
6 1 text6 user2
7 2 text7 user2
8 3 text8 user2
9 4 text9 user2
10 5 text10 user2
现在,我想重新组织此数据框,并使用'var'的值作为列名,并将该数据框更改为具有两行(user1和user2)的数据框。 Text1到text10是变量值。 我尝试过reshape2,但未成功完成。
library(reshape2)
datafile.melt <- melt(data = datafile, id.vars=c('users','var'), measure.vars=c('texts'))
datafile.values <- dcast(datafile.melt, var ~ users)
结果是:
var user1 user2
1 1 text1 text6
2 2 text2 text7
3 3 text3 text8
4 4 text4 text9
5 5 text5 text10
如您所见,'user1'和'user2'更改为列名,而var值没有。 我想将其更改为:
users 1 2 3 4 5
1 user1 text1 text2 text3 text4 text5
2 user2 text6 text7 text8 text9 text10
有谁知道如何正确执行此操作? 提前谢谢了!
从基础R使用reshape
nn<-reshape(df1,timevar="var",idvar="users",direction="wide")
names(nn)[-1]<-as.character(unique(df1$var))
> nn
users 1 2 3 4 5
1 user1 text1 text2 text3 text4 text5
6 user2 text6 text7 text8 text9 text10
根据我的评论,答案很简单,是使用users ~ var
而不是var ~ users
:
> dcast(datafile.melt, users ~ var)
users 1 2 3 4 5
1 user1 text1 text2 text3 text4 text5
2 user2 text6 text7 text8 text9 text10
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.