也许这会有帮助:
by(dat, dat$variable_id, function(x)
Reduce(intersect, split(x$source_id, x$experiment_id)))
#dat$variable_id: pr
# [1] "BCC-CSM2-MR" "MRI-ESM2-0" "CESM2-WACCM" "INM-CM5-0" "INM-CM4-8"
# [6] "MPI-ESM1-2-HR" "CMCC-CM2-SR5" "NorESM2-MM" "EC-Earth3" "EC-Earth3-Veg"
#[11] "GFDL-ESM4"
#--------------------------------------------------------------------------
#dat$variable_id: tas
# [1] "BCC-CSM2-MR" "MRI-ESM2-0" "CESM2-WACCM" "AWI-CM-1-1-MR" "INM-CM4-8"
# [6] "INM-CM5-0" "MPI-ESM1-2-HR" "CMCC-CM2-SR5" "NorESM2-MM" "EC-Earth3"
#[11] "EC-Earth3-Veg" "GFDL-ESM4"
#--------------------------------------------------------------------------
#dat$variable_id: tasmax
# [1] "BCC-CSM2-MR" "MRI-ESM2-0" "AWI-CM-1-1-MR" "INM-CM4-8" "INM-CM5-0"
# [6] "MPI-ESM1-2-HR" "NorESM2-MM" "EC-Earth3" "EC-Earth3-Veg" "GFDL-ESM4"
#--------------------------------------------------------------------------
#dat$variable_id: tasmin
# [1] "BCC-CSM2-MR" "MRI-ESM2-0" "AWI-CM-1-1-MR" "INM-CM4-8" "INM-CM5-0"
# [6] "MPI-ESM1-2-HR" "NorESM2-MM" "EC-Earth3" "EC-Earth3-Veg" "GFDL-ESM4"
为每一个
variable_id
source_id
experiment_id
.
如果你想找出共同点
为每一个
变量_id
Reduce(intersect, split(dat$source_id, list(dat$variable_id, dat$experiment_id)))
#[1] "BCC-CSM2-MR" "MRI-ESM2-0" "INM-CM5-0" "INM-CM4-8"
#[5] "MPI-ESM1-2-HR" "NorESM2-MM" "EC-Earth3" "EC-Earth3-Veg"
#[9] "GFDL-ESM4"