如何在R中转换表?

如何在R中转换表?,r,R,这是my data.txt: country attitude count china a 52 china b 58 china c 25 china d 12 china e 3 china f 1 france a 35 france b 48 france c 40 france d 21 france e 9 france f 2 india

这是my data.txt:

country   attitude   count  
china   a   52  
china   b   58  
china   c   25  
china   d   12  
china   e   3  
china   f   1  
france  a   35  
france  b   48  
france  c   40  
france  d   21  
france  e   9  
france  f   2  
india   a   96  
india   b   28  
india   c   13  
india   d   7  
india   e   10  
india   f   0   
england a   21  
england b   41  
england c   50  
england d   23  
england e   18  
england f   3  
usa         a   31  
usa         b   48  
usa         c   45  
usa         d   19  
usa         e   10  
usa         f   3  
我想得到表1:

attitude    count
a   235
b   223
c   173
d   82
e   50
f   9
表2:

       a    b   c     d   e  f
china   52  58  25  12  3   1
france  35  48  40  21  9   2
india   96  28  13  7   10  0
england 21  41  50  23  18  3
usa 31  48  45  19  10  3
如何将data.txt转换为这两个表

表1:

aggregate(count~attitude,data=data.txt,FUN=sum)
  attitude count
1        a   235
2        b   223
3        c   173
4        d    82
5        e    50
6        f     9
表2:

xtabs(count~country+attitude,data.txt)
         attitude
country    a  b  c  d  e  f
  china   52 58 25 12  3  1
  england 21 41 50 23 18  3
  france  35 48 40 21  9  2
  india   96 28 13  7 10  0
  usa     31 48 45 19 10  3
或者,如果您需要新的data.frame:

reshape(data.txt,direction="wide",timevar="attitude",idvar="country")
   country count.a count.b count.c count.d count.e count.f
1    china      52      58      25      12       3       1
7   france      35      48      40      21       9       2
13   india      96      28      13       7      10       0
19 england      21      41      50      23      18       3
25     usa      31      48      45      19      10       3
表1:

aggregate(count~attitude,data=data.txt,FUN=sum)
  attitude count
1        a   235
2        b   223
3        c   173
4        d    82
5        e    50
6        f     9
表2:

xtabs(count~country+attitude,data.txt)
         attitude
country    a  b  c  d  e  f
  china   52 58 25 12  3  1
  england 21 41 50 23 18  3
  france  35 48 40 21  9  2
  india   96 28 13  7 10  0
  usa     31 48 45 19 10  3
或者,如果您需要新的data.frame:

reshape(data.txt,direction="wide",timevar="attitude",idvar="country")
   country count.a count.b count.c count.d count.e count.f
1    china      52      58      25      12       3       1
7   france      35      48      40      21       9       2
13   india      96      28      13       7      10       0
19 england      21      41      50      23      18       3
25     usa      31      48      45      19      10       3

使用哈德利的软件包

plyr::ddply(d, .(attitude), summarise, n = sum(count))

reshape2::dcast(d, country ~ attitude)

使用哈德利的软件包

plyr::ddply(d, .(attitude), summarise, n = sum(count))

reshape2::dcast(d, country ~ attitude)

我的数据在eval(predvars,data,env)中的“/home/debian/data.txt”,aggregate(count~attitude,data=“/home/debian/data.txt”,FUN=sum)错误中(predvars,data,env):无效的'envir'参数我该怎么办?@BqsjSjbq我使用了
data.txt
作为变量名,以寻求更好的名称。它不是指向该文件的链接。使用
data.txt我的数据在“/home/debian/data.txt”中,聚合(count~attitude,data=“/home/debian/data.txt”,FUN=sum)eval中出错(predvars,data,env):无效的'envir'参数我该怎么办?@BqsjSjbq我使用
data.txt
作为变量名,以寻求更好的名称。它不是指向该文件的链接。使用
data.txt