我想拆解一个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
如何获得所有542长格式的列表?
发布于 2013-11-06 19:00:48
你想要这个包reshape2
require(reshape2)
melt(HairEyeColor)
注释中的说明确认,您想要的是获取行并重复它们,而不是在value
列中压缩该信息(默认情况下)。
要做到这一点,如泰勒在评论中所述,请做以下工作:
x <- melt(HairEyeColor)
x[rep(seq_len(nrow(x)), x$value), -4]
第一行是x
,如下所示。
第二行告诉R
重复第一行( Hair
、Eye
、Sex
的组合) value
时间。逗号后面的-4
(如在[..., -4]
中)的含义是,在重复行时,而不是包含第四列(在本例中为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
发布于 2013-11-06 19:19:52
简单基R解
as.data.frame(HairEyeColor)
https://stackoverflow.com/questions/19820440
复制相似问题