我想解开R数据集并以长格式获取它.例如,如果我输入HairEyeColor,我会得到
, , Sex = Male
Eye
Hair Brown Blue Hazel Green
Black 32 11 10 3
Brown 53 50 25 15
Red 10 10 7 7
Blond 3 30 5 8
, , Sex = Female
Eye
Hair Brown Blue Hazel Green
Black 36 9 5 2
Brown 66 34 29 14
Red 16 7 7 7
Blond 4 64 5 8
Run Code Online (Sandbox Code Playgroud)
如何获得所有542长格式的列表?
你想要的包 reshape2
require(reshape2)
melt(HairEyeColor)
Run Code Online (Sandbox Code Playgroud)
注释中的澄清确认了您想要的是获取行并重复它们而不是在列中压缩该信息value(默认情况下).
为此,在评论中作为Tyler执行以下操作:
x <- melt(HairEyeColor)
x[rep(seq_len(nrow(x)), x$value), -4]
Run Code Online (Sandbox Code Playgroud)
第一行制作x,打印在下面.
第二行告诉R重复第一行(的组合Hair,Eye,Sex)value次.的含义-4逗号之后(如在[..., -4])是NOT包括第四列(在这种情况下value重复所述排时).
这是x默认值的输出melt.
> melt(HairEyeColor)
Hair Eye Sex value
1 Black Brown Male 32
2 Brown Brown Male 53
3 Red Brown Male 10
4 Blond Brown Male 3
5 Black Blue Male 11
6 Brown Blue Male 50
7 Red Blue Male 10
8 Blond Blue Male 30
9 Black Hazel Male 10
10 Brown Hazel Male 25
11 Red Hazel Male 7
12 Blond Hazel Male 5
13 Black Green Male 3
14 Brown Green Male 15
15 Red Green Male 7
16 Blond Green Male 8
17 Black Brown Female 36
18 Brown Brown Female 66
19 Red Brown Female 16
20 Blond Brown Female 4
21 Black Blue Female 9
22 Brown Blue Female 34
23 Red Blue Female 7
24 Blond Blue Female 64
25 Black Hazel Female 5
26 Brown Hazel Female 29
27 Red Hazel Female 7
28 Blond Hazel Female 5
29 Black Green Female 2
30 Brown Green Female 14
31 Red Green Female 7
32 Blond Green Female 8
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
352 次 |
| 最近记录: |