繁体   English   中英

如何使用字符串变量重塑数据框?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM