如何在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工作得很好。非常感谢:)