我有一个数据集
data
Choice Length Gender
1 I subadults M
2 F subadults M
3 F subadults M
4 F subadults M
5 I subadults M
6 F subadults M
7 I subadults M
8 F subadults M
9 I subadults M
10 I subadults M
11 I subadults M
12 O subadults M
13 O subadults M
14 I subadults M
15 F subadults M
16 F subadults M
17 I subadults M
18 O subadults M
19 F subadults M
20 O subadults M
21 F subadults M
22 F adults M
23 I adults M
24 F adults M
25 I adults M
26 F adults M
27 F adults M
28 F adults M
29 F adults M
30 F adults M
31 O adults M
32 O adults M
33 F adults F
34 F adults F
35 F adults F
36 F adults F
37 O adults F
38 F adults F
39 F adults F
40 I subadults F
41 I subadults F
42 I subadults F
43 O subadults F
44 I subadults F
45 I subadults F
46 I subadults F
47 F subadults F
48 I subadults F
49 O subadults F
50 I subadults F
51 I adults F
52 F adults F
53 F adults F
54 F adults F
55 F adults F
现在我想将 Choice 列一分为三,因此数据集会像:
F I O Length Gender
1 0 20 subadults F
0 10 0 adults F
12 0 11 subadults M
0 10 0 adults M
其中 F, I, O 是长度和性别的总和。
我找不到执行此操作的 R 命令。有没有人可以帮助我?
非常感谢!颜
最佳答案
尝试:
require(reshape2)
data <- data.frame(choice = c('I', 'F', 'I', 'O', 'F', 'O'),
length = c('subadults', 'subadults', 'subadults', 'adults', 'adults', 'adults'),
gender = c('M', 'M', 'F', 'F', 'M', 'F'))
melt_data = melt(data, value.name = "value", id.vars = c("length", "gender"))
dcast(melt_data, gender+length ~ value)
gender length F I O
1 F adults 0 0 2
2 F subadults 0 1 0
3 M adults 1 0 0
4 M subadults 1 1 0
关于r - 如何用R中的其他变量将一列分成多列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30091974/