如何在R中创建数据框

时间:2015-07-26 08:01:45

标签: r dataframe

这是预数据

Name type cnt
Jay   A    1
Jay   B    2
John  A    3
John  B    6

如何像这样设置数据

Name A B 
Jay  1 2
John 3 6

data.frame()并没有像我预期的那样充满活力。任何想法?

这是我的真实数据

       Name    type cnt
1      Anne       A  30
2   Barbara       A  15
3       Ben       A  21
4     Cindy       A 100
5       Edd       A 105
6      Eric       A  22
7     Jacky       A  17
8      John       A  97
9       Lex       A  22
10     Nick       A  18
11     Paul       A 100
12     DoIt       B  66
13    FixIt       B  66
14     Anne       C 185
15  Barbara       C  88
16      Ben       C   4
17     Eric       C   4
18    Jacky       C  92
19      Lex       C   7
20     Nick       C   3

1 个答案:

答案 0 :(得分:4)

使用tidyr的{​​{1}}

spread

使用library(tidyr) spread(df, type, cnt, fill = 0) 的{​​{1}}

reshape2

或使用dcast

library(reshape2) 
dcast(df, Name ~ type, fill = 0)

#      Name   A  B   C
#1     Anne  30  0 185
#2  Barbara  15  0  88
#3      Ben  21  0   4
#4    Cindy 100  0   0
#5     DoIt   0 66   0
#6      Edd 105  0   0
#7     Eric  22  0   4
#8    FixIt   0 66   0
#9    Jacky  17  0  92
#10    John  97  0   0
#11     Lex  22  0   7
#12    Nick  18  0   3
#13    Paul 100  0   0

或者

base R

或者

 reshape(df, idvar='Name', timevar='type', direction='wide')