在R for Data Science中,作者解释了他们对整洁数据的想法。他们为不整洁的数据提供了一个示例:
#> # A tibble: 3 x 3
#> country `1999` `2000`
#> * <chr> <int> <int>
#> 1 Afghanistan 19987071 20595360
#> 2 Brazil 172006362 174504898
#> 3 China 1272915272 1280428583
根据作者的说法,相同数据的整洁版本将是:
#> # A tibble: 6 x 3
#> country year population
#> <chr> <chr> <int>
#> 1 Afghanistan 1999 19987071
#> 2 Afghanistan 2000 20595360
#> 3 Brazil 1999 172006362
#> 4 Brazil 2000 174504898
#> 5 China 1999 1272915272
#> 6 China 2000 1280428583
我看到在杂乱无章的版本中,必须已经知道数据是人口,否则无法理解,什么1999和2000意思。但是,这可以从上下文中得出,例如,如果 tibble 存储在一个名为population.
现在,我有什么资格怀疑他们的判断——我不怀疑。但我想更好地理解他们的想法。第二个版本的实际优势是什么?我不能不直观地看到它们,例如,即使需要使用不同的功能,对于 AFAICS 两种情况,平均值等的计算都很容易。另一方面,我认为如果数据以“不整齐”的形式存储,那么计算两年人口之间的相关性会更容易。我的错误是什么?