如何在R中制作数据帧

如何在R中制作数据帧,r,dataframe,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()并不像我预期的那样是wokring。有什么想法吗 这是我的真实数据 Name type cnt 1 Anne A 30 2 Barbara A 15 3 Ben A

这是预数据

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()并不像我预期的那样是wokring。有什么想法吗

这是我的真实数据

       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

使用
tidyr
spread

library(tidyr)
spread(df, type, cnt, fill = 0)
使用
reformae2
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')


使用
tidyr
spread

library(tidyr)
spread(df, type, cnt, fill = 0)
使用
reformae2
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')


我收到“错误:列规范无效”消息。我认为这是因为缺少一些数据,无法生成“完整的扩展帧数据”错误:列规范无效”消息。我认为这是因为有一些缺失的数据无法使“完整的扩展帧数据”重塑2的dcast工作类似。有没有办法将NA替换为0?为什么我的真实数据不适用于spread?我将数据添加到post@DongHunKim检查编辑后的答案。对我来说,spread也在工作,请确保指定正确的列名spread仍然不工作,但dcast工作得很好。非常感谢:)Reforme2的dcast也在工作。有没有办法将NA替换为0?为什么我的真实数据不适用于spread?我将数据添加到post@DongHunKim检查编辑后的答案。对我来说,spread也在工作,请确保指定正确的列名spread仍然不工作,但dcast工作得很好。非常感谢:)