R语言 合并聚合数据框会创建N/A

xmd2e60i  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(39)

在那里,完整的数据分析新手在R这里只有基础知识。
我想做一个综合一夫多妻制水平和理想的家庭规模之间的关系分析(IFS)在肯尼亚妇女从国土安全部调查数据.我想检查的综合水平是地区,种族群体和宗教群体.
我的脚步:

  • 为地区创造总价值:我确定每个地区一夫多妻制联盟中女性的百分比,然后根据阈值分配一夫多妻制水平(工作)
  • 为族裔群体建立综合价值框架,基本上程序相同
  • 为宗教团体建立一个聚合价值框架。
  • 最后,把所有的值放在一个回归数据框架中,在这里我可以使用我的聚合一夫多妻制水平并检查它们对个人IFS的影响。这里,每行应该代表一个受访者,每列应该代表一个聚合变量,包括他们各自宗教或种族群体的聚合一夫多妻制。

然而,每当我试图将它们合并在一起时,一半的列现在几乎只包含N/A,我不明白为什么。我认为问题一定是不同框架的列的命名,但令人困惑的部分是,它们都至少包含少数值(应该在10.000左右).我创建的聚合标签对区域变量非常有效,但对其他变量都没有效果。
我尝试了不同版本的合并,这是最新的:

> # Merge with Religious Data
> regression_data <- merge(regression_data, merged_religious_data[, c("ReligiousGroup", "PolygynyLevel")], by.x = "ReligiousGroup", by.y = "ReligiousGroup", all.x = TRUE)
Warning message:
In merge.data.frame(regression_data, merged_religious_data[, c("ReligiousGroup",  :
  column names ‘PolygynyLevel.x’, ‘PolygynyLevel.y’ are duplicated in the result
> 
> # Merge with Ethnic Data
> regression_data <- merge(regression_data, merged_ethnic_data[, c("V131", "PolygynyLevel")], by.x = "V131", by.y = "V131", all.x = TRUE)
Warning message:
In merge.data.frame(regression_data, merged_ethnic_data[, c("V131",  :
  column names ‘PolygynyLevel.x’, ‘PolygynyLevel.y’, ‘PolygynyLevel.x’, ‘PolygynyLevel.y’ are duplicated in the result

字符串
我的想法是,我可以清理列名后,只要我只是得到所有的信息显示出来。然而,这是输出,N/A突然比比皆是。它没有意义的数据,所以我一定是犯了一些愚蠢的错误,而合并。这是我的第一个大规模的分析项目,我不得不猜测我的方式通过了很多。

summary(regression_data)
      V131       ReligiousGroup      Region     PolygynyLevel.x IdealFamilySize    UrbanRural    EducationLevel 
 Min.   : 1.0    Min.   :1.0     Min.   :1.00   Low   :2702     Min.   : 0.000   Min.   :0.000   Min.   :1.000  
 1st Qu.: 4.5    1st Qu.:2.0     1st Qu.:2.75   Middle:5404     1st Qu.: 3.000   1st Qu.:1.500   1st Qu.:1.000  
 Median : 8.0    Median :3.0     Median :4.50   High  :2702     Median : 4.000   Median :2.000   Median :1.000  
 Mean   :13.4    Mean   :3.2     Mean   :4.50                   Mean   : 4.445   Mean   :1.875   Mean   :1.625  
 3rd Qu.:11.5    3rd Qu.:4.0     3rd Qu.:6.25                   3rd Qu.: 5.000   3rd Qu.:3.000   3rd Qu.:2.250  
 Max.   :96.0    Max.   :6.0     Max.   :8.00                   Max.   :20.000   Max.   :3.000   Max.   :3.000  
 NA's   :10793   NA's   :10803                                                                                  
 PolygynyLevel.y PolygynyLevel.x PolygynyLevel.y PolygynyLevel.x PolygynyLevel.y
 Low   :    1    Low   :    3    Low   :    1    Low   :    1    Low   :    3   
 Middle:    2    Middle:    5    Middle:    2    Middle:    2    Middle:    5   
 High  :    2    High  :    7    High  :    2    High  :    2    High  :    7   
 NA's  :10803    NA's  :10793    NA's  :10803    NA's  :10803    NA's  :10793


V131只是种族标记的代码,它的存在是因为我认为我可以保存我自己的麻烦,只是使用原始的列名。
编辑:我在查看器中上下滚动了一下,似乎出于某种原因,R将组标签视为个体。它列出了每个聚合标签一次,然后将所有其他行替换为N/A。我不知道为什么会发生这种情况。

b1zrtrql

b1zrtrql1#

对不起,这个问题问得不是很好,但是我昨天解决了这个问题。这个问题出现是因为我为合并命名了不同的相应列,导致了混乱和不匹配。
我再次对所有 Dataframe 进行编码,将编码名称保存在聚合中,然后它们完美地对应起来,我得到了分析所需的回归框架。
对不起,希望将来的请求不会那么愚蠢。

相关问题