我的目标是在数据透视表中比较一家特定商店的存在与我们可以找到这些商店的人口密度之间是否存在联系。为此,我有一个 CSV 文件,其中包含 600 个有或没有商店的区域示例。这是一个包含 600 行和两列的文件:1/ 代表一个区域的人口密度的数字,以及 2/ 该区域中该特定商店的数量(0、1 或 2)。
为了做一个数据透视表,我需要将密度分组为 10 组,每组 60 行(在第一组中,60 个较大的密度,直到最后一组,60 个较小的密度)。然后,我就可以很容易地看到建了多少商店,密度是低还是高。我可以理解吗(我希望)?:)
我想没什么难的。但是有很多方法(和包装)可以解决这个问题......我有点迷失了。
我的主要问题:将我的变量分成十组每组 60 行的最简单方法是什么?我试过 cut()/ cut2()和 hist() 都没有成功,我听说过 bin_var() 和 reshape() 但我不明白它们对这种情况有何帮助。
例如(正如贾斯汀所问)。使用剪切():
data <- read.csv("data.csv", sep = ";")
groups <- cut(as.numeric(data$densit_pop2), breaks=10)
summary(groups)
(0.492,51.4] (51.4,102] (102,153] (153,204] (204,255] (255,306]
53 53 52 52 52 54
(306,357] (357,408] (408,459] (459,510]
52 59 53 54
好的,很好,确实“组”包含 10 个组,行数几乎相同。但是间隔中指示的某些值对我没有任何意义。这是密度列的第一行(增加排序):
> head(data$densit_pop2)
[1] 14,9 16,7 17,3 18,3 20,2 20,5
509 Levels: 100 1013,2 102,4 102,6 10328 103,6 10375 10396,8 104,2 ... 99,9
我的意思是,看看第一组。为什么 0.492 当 14.9 是我的最小值时?而且,如果我手动计算第一个和值 51.4 之间有多少行,我会找到 76。为什么它显示为 53 行?我准确地说数据框从最低到最高正确排列。
我当然想念什么……但是什么?