r - 长而宽的数据——何时使用什么?

标签 r reshape dataformat

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

5年前关闭。



Improve this question




我正在将来自不同数据集的数据编译成一个数据集进行分析。我将进行数据探索,尝试不同的方法来找出数据中可能隐藏的规律,所以我目前没有具体的方法。现在我想知道是否应该将我的数据编译成长格式或宽格式。

我应该使用哪种格式,为什么?

我知道数据可以从长到宽重新整形,反之亦然,但仅存在此功能就意味着有时需要重新整形,而这种需求又意味着特定格式可能更适合特定任务。那么我什么时候需要哪种格式,为什么?

我不是在问性能。这已在其他问题中有所涉及。

最佳答案

哈德利·威克姆的 Tidy Data纸和 tidyr包是他(最新)对其原则的实现,是一个很好的起点。

对这个问题的粗略回答是,数据在处理过程中应该总是很长,并且应该只为了显示目的而加宽。不过要小心,因为这里的“长”更多地指的是“整洁”,而不是纯粹的长形式。

示例

例如,mtcars数据集。这已经是整洁的形式,因为每一行代表一个观察。所以“加长”它,得到这样的东西

        model type   value
1 AMC Javelin  mpg  15.200
2 AMC Javelin  cyl   8.000
3 AMC Javelin disp 304.000
4 AMC Javelin   hp 150.000
5 AMC Javelin drat   3.150
6 AMC Javelin   wt   3.435

适得其反; mpgcyl没有任何有意义的可比性。

服用 ChickWeight数据集(长格式)并按时间将其转换为宽数据集
require(tidyr)
ChickWeight %>% spread(Time, weight)
   Chick Diet  0  2  4  6   8  10  12  14  16  18  20  21
1     18    1 39 35 NA NA  NA  NA  NA  NA  NA  NA  NA  NA
2     16    1 41 45 49 51  57  51  54  NA  NA  NA  NA  NA
3     15    1 41 49 56 64  68  68  67  68  NA  NA  NA  NA
4     13    1 41 48 53 60  65  67  71  70  71  81  91  96
5      9    1 42 51 59 68  85  96  90  92  93 100 100  98
6     20    1 41 47 54 58  65  73  77  89  98 107 115 117
7     10    1 41 44 52 63  74  81  89  96 101 112 120 124
8      8    1 42 50 61 71  84  93 110 116 126 134 125  NA
9     17    1 42 51 61 72  83  89  98 103 113 123 133 142
10    19    1 43 48 55 62  65  71  82  88 106 120 144 157
11     4    1 42 49 56 67  74  87 102 108 136 154 160 157
12     6    1 41 49 59 74  97 124 141 148 155 160 160 157
13    11    1 43 51 63 84 112 139 168 177 182 184 181 175
...

给出了一个可能有用的可视化,但对于数据分析来说,非常不方便,因为计算诸如增长率之类的事情变得很麻烦。

关于r - 长而宽的数据——何时使用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34590173/

相关文章:

r - 增加雷达图中长轴标签的空间

r - 使用 dplyr 跨多行修改值的更有效方法

r - 将 R 编织为 PDF 时限制消息输出

r - 在 R 中将行拆分为列

在 R 中重建数据

javascript - 如何使用javascript将以下格式更改为json格式

Excel 正在从 CSV 文件中去除前导 0

django - 来自django查询的饼图highcharts

r - 如何在ggplot2中分别缩放线和点的大小

r - 如何在 R 中 reshape 这些数据?