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」の値を列名として使用して、データフレームを 2 つの行 (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 に答える