我的数据如下所示:
country_name --------城市----------- area_change_pc
孟加拉国------------博格拉--------(33.33)
孟加拉国-- ----------Chandpur-- (-41.76)
印度---------Dewas--------(12.95)
巴基斯坦----------------奎达------(4.08)
巴基斯坦----------------Vehari---- ----(206.01)
...
然后,我根据 4 个意外事件创建了一个名为增长的新变量:负 (<0)、小 (>=0, <15)、中 (>=15, <50) 和大 (>= 50),代码如下:
urbanization$growth[urbanization$area_change_pc<0]<-"1. negative"
urbanization$growth[urbanization$area_change_pc>=0 & area_change_pc<15]<-"2. small"
urbanization$growth[area_change_pc>=15 & area_change_pc<50]<-"3. medium"
urbanization$growth[area_change_pc>=50]<-"4. large"
现在数据看起来像这样:
country_name --------城市------------ area_change_pc ----增长
孟加拉国------------博格拉--------( 33.33)---------------------3。中等
孟加拉国------------昌德普尔--(-41.76)---------1。负
印度------------德瓦斯------(12.95)---- ----2。缓慢
的巴基斯坦----奎达--------(4.08)--------- -2。缓慢
的巴基斯坦----------------Vehari--------(206.01)------4。大
...
我正在尝试创建一个如下所示的表:
Bangladesh India Pakistan Total
negative
small
medium
large
每个单元格将由Area_Change
这些意外事件的平均值填充。例如,第一个单元格应该是Area_Change
所有负增长的孟加拉城市的平均值。我想Total
成为所有国家增长组的平均值。我想出了如何area_change_pc
使用 tapply 获得每个国家的平均值:
with(urbanization, tapply(area_change_pc, list(growth,country_name), mean))
给了我(填写的数据值 - 与我给出的数字不匹配,因为我使用的是完整的数据集,所以我把它们排除在外):
----------------Bangladesh India Pakistan
negative
small
medium
large
但是,我不知道如何创建一个总列。最终,我想要总列,以便我可以测试每个国家和增长组之间的显着差异与该增长组的平均值(因此,孟加拉国负增长区域的平均面积变化与平均变化显着不同在所有国家的地区?)。有谁知道我如何做到这一点?