0

我有一个带有文本数据的数据框。它看起来像这样:

    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

有谁知道如何正确地做到这一点?提前谢谢了!

4

2 回答 2

3

reshape从基础 R使用

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
于 2013-10-13T14:38:30.657 回答
1

根据我的评论,答案只是使用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
于 2013-10-13T15:41:26.220 回答