R-识别数据框列中的公共元素

噻戈韦洛索

如何确定此数据框的所有列(不包括NA共有的元素我该如何实现?我试着用一些方法intersectunique没有成功。

 df <- structure(list(cloudiness = structure(1:47, .Label = c("ACCESS1-0", 
"ACCESS1-3", "BNU-ESM", "CCSM4", "CESM1-BGC", "CESM1-CAM5", "CESM1-CAM5-1-FV2", 
"CESM1-FASTCHEM", "CESM1-WACCM", "CMCC-CESM", "CMCC-CM", "CMCC-CMS", 
"CNRM-CM5", "CNRM-CM5-2", "CSIRO-Mk3-6-0", "CanESM2", "FGOALS-g2", 
"FIO-ESM", "GFDL-CM3", "GFDL-ESM2G", "GFDL-ESM2M", "GISS-E2-H", 
"GISS-E2-H-CC", "GISS-E2-R", "GISS-E2-R-CC", "HadCM3", "HadGEM2-AO", 
"HadGEM2-CC", "HadGEM2-ES", "IPSL-CM5A-LR", "IPSL-CM5A-MR", "IPSL-CM5B-LR", 
"MIROC-ESM", "MIROC-ESM-CHEM", "MIROC4h", "MIROC5", "MPI-ESM-LR", 
"MPI-ESM-MR", "MPI-ESM-P", "MRI-CGCM3", "MRI-ESM1", "NorESM1-M", 
"NorESM1-ME", "bcc-csm1-1", "bcc-csm1-1-m", "concat", "inmcm4"
), class = "factor"), humidity = structure(c(1L, 2L, 3L, 4L, 
5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 
19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 
32L, 33L, 34L, 35L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA), .Label = c("ACCESS1-0", "ACCESS1-3", "BNU-ESM", "CCSM4", 
"CESM1-BGC", "CESM1-CAM5", "CESM1-FASTCHEM", "CESM1-WACCM", "CNRM-CM5", 
"CSIRO-Mk3-6-0", "CanESM2", "GFDL-CM3", "GFDL-ESM2G", "GFDL-ESM2M", 
"GISS-E2-H", "GISS-E2-H-CC", "GISS-E2-R", "GISS-E2-R-CC", "HadCM3", 
"HadGEM2-AO", "HadGEM2-CC", "HadGEM2-ES", "IPSL-CM5A-MR", "IPSL-CM5B-LR", 
"MIROC-ESM", "MIROC-ESM-CHEM", "MIROC4h", "MIROC5", "MRI-CGCM3", 
"MRI-ESM1", "NorESM1-M", "NorESM1-ME", "bcc-csm1-1", "bcc-csm1-1-m", 
"inmcm4"), class = "factor"), precipitation = structure(c(1L, 
2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 
16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 
29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 
NA, NA, NA, NA, NA, NA), .Label = c("BNU-ESM", "CCSM4", "CESM1-BGC", 
"CESM1-CAM5", "CESM1-FASTCHEM", "CESM1-WACCM", "CMCC-CESM", "CMCC-CMS", 
"CNRM-CM5-2", "CanCM4", "CanESM2", "FGOALS-g2", "FIO-ESM", "GFDL-CM2p1", 
"GFDL-CM3", "GFDL-ESM2M", "GISS-E2-H", "GISS-E2-H-CC", "GISS-E2-R", 
"GISS-E2-R-CC", "HadCM3", "HadGEM2-AO", "HadGEM2-CC", "HadGEM2-ES", 
"IPSL-CM5A-LR", "IPSL-CM5A-MR", "IPSL-CM5B-LR", "MIROC-ESM", 
"MIROC-ESM-CHEM", "MIROC4h", "MIROC5", "MPI-ESM-LR", "MPI-ESM-MR", 
"MPI-ESM-P", "MRI-CGCM3", "MRI-ESM1", "NorESM1-M", "NorESM1-ME", 
"bcc-csm1-1", "bcc-csm1-1-m", "inmcm4"), class = "factor"), temperature = structure(c(NA_integer_, 
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_, 
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_, 
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_, 
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_, 
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_, 
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_, 
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_, 
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_, 
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_, 
NA_integer_), .Label = character(0), class = "factor"), wind = structure(c(1L, 
2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 
16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 
29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, NA, NA, 
NA, NA, NA, NA, NA, NA), .Label = c("ACCESS1-0", "ACCESS1-3", 
"BNU-ESM", "CMCC-CESM", "CMCC-CM", "CMCC-CMS", "CNRM-CM5", "CNRM-CM5-2", 
"CSIRO-Mk3-6-0", "CanESM2", "GFDL-CM2p1", "GFDL-CM3", "GFDL-ESM2G", 
"GFDL-ESM2M", "GISS-E2-H", "GISS-E2-H-CC", "GISS-E2-R", "GISS-E2-R-CC", 
"HadCM3", "HadGEM2-AO", "HadGEM2-CC", "HadGEM2-ES", "IPSL-CM5A-LR", 
"IPSL-CM5A-MR", "IPSL-CM5B-LR", "MIROC-ESM", "MIROC-ESM-CHEM", 
"MIROC4h", "MIROC5", "MPI-ESM-LR", "MPI-ESM-MR", "MPI-ESM-P", 
"MRI-CGCM3", "MRI-ESM1", "NorESM1-M", "NorESM1-ME", "bcc-csm1-1", 
"bcc-csm1-1-m", "inmcm4"), class = "factor")), .Names = c("cloudiness", 
"humidity", "precipitation", "temperature", "wind"), row.names = c(NA, 
-47L), class = "data.frame")
阿克伦

你可以尝试Reduceintersect即去掉所有列后NAscolSums[!is.na(df))!=0]

Reduce(intersect,df[colSums(!is.na(df))!=0])
#[1] "BNU-ESM"        "CanESM2"        "GFDL-CM3"       "GFDL-ESM2M"    
#[5] "GISS-E2-H"      "GISS-E2-H-CC"   "GISS-E2-R"      "GISS-E2-R-CC"  
#[9] "HadCM3"         "HadGEM2-AO"     "HadGEM2-CC"     "HadGEM2-ES"    
#[13] "IPSL-CM5A-MR"   "IPSL-CM5B-LR"   "MIROC-ESM"      "MIROC-ESM-CHEM"
#[17] "MIROC4h"        "MIROC5"         "MRI-CGCM3"      "MRI-ESM1"      
#[21] "NorESM1-M"      "NorESM1-ME"     "bcc-csm1-1"     "bcc-csm1-1-m"  
#[25] "inmcm4"     

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何让 R 识别数据框中的“时间”列?

来自分类Dev

R:识别数据框中的列名是否包含字符串

来自分类Dev

通过公共列合并R中的不均匀数据框并通过NA填充空元素

来自分类Dev

识别R中数据框中数值最高的列

来自分类Dev

R:如何识别数据框中所有组的最小值的索引

来自分类Dev

使用数据框列表的公共列创建数据框-R

来自分类Dev

仅从数据框的列中识别数字值-Python

来自分类Dev

R中的变量中不存在如何识别数据的方法

来自分类Dev

从R中的巨大数据框中识别和选择单个元素

来自分类Dev

在R中更改数据框的多个列元素的值

来自分类Dev

识别数据框中的模式

来自分类Dev

R数据框:在公共行中添加值

来自分类Dev

R中的RegEx以识别数字出现的频率

来自分类Dev

基于 R 中列中的公共元素的行划分

来自分类Dev

计算 R 中的日期元素:数据框

来自分类Dev

获取数据框的元素数等于列表中的元素-R

来自分类Dev

R. n另一列的数据框中的前一个元素

来自分类Dev

如何在R的数据框中计算列表列的每一列中的元素

来自分类Dev

如何识别数据框中的唯一项?

来自分类Dev

从数据框列表中获取列R

来自分类Dev

更改R数据框中的列值

来自分类Dev

向R中的数据框添加列

来自分类Dev

根据R中的列合并数据框

来自分类Dev

转换数据框R列中的日期

来自分类Dev

在R数据框中显示相同的列

来自分类Dev

按列重组R中的数据框

来自分类Dev

更改R中数据框的列的类型?

来自分类Dev

R“合并”到数据框中的列

来自分类Dev

在R中:组合不同数据框的列