首页 > 解决方案 > 在 R 中将数据框从多列转换为两列

问题描述

例如,我有一个关于三个国家的电视节目收视率的数据框(每个国家有 12 个电视节目),如下所示。

Austria Belgium Canada
102.71  103.87  470.49
103.21  106.06  483.52
109.86  114.1   492.41
194.1   119.98  498.56
198.69  204.92  503.6
202.52  209.21  608.15
205.62  222.59  612.21
208.34  225.91  615.78
211.09  298.63  619.1
213.31  321.68  622.01
215.65  324.28  624.78
217.88  326.7   627.46

我想将此数据框转换为两列数据框:一列用于评级,一列用于相应国家,例如:

Ratings Countries
102.71  Austria
103.21  Austria
....
103.87  Belgium
...

我尝试了包装重塑,但无法得到我想要的。谢谢!

标签: rdataframe

解决方案


我想你可以使用stack

setNames(stack(df),c("Rating","Countries"))

这使

  Rating Countries
1  102.71   Austria
2  103.21   Austria
3  109.86   Austria
4  194.10   Austria
5  198.69   Austria
6  202.52   Austria
7  205.62   Austria
8  208.34   Austria
9  211.09   Austria
10 213.31   Austria
11 215.65   Austria
12 217.88   Austria
13 103.87   Belgium
14 106.06   Belgium
15 114.10   Belgium
16 119.98   Belgium
17 204.92   Belgium
18 209.21   Belgium
19 222.59   Belgium
20 225.91   Belgium
21 298.63   Belgium
22 321.68   Belgium
23 324.28   Belgium
24 326.70   Belgium
25 470.49    Canada
26 483.52    Canada
27 492.41    Canada
28 498.56    Canada
29 503.60    Canada
30 608.15    Canada
31 612.21    Canada
32 615.78    Canada
33 619.10    Canada
34 622.01    Canada
35 624.78    Canada
36 627.46    Canada

推荐阅读