Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带字符列表的R循环_R_List_Loops - Fatal编程技术网

带字符列表的R循环

带字符列表的R循环,r,list,loops,R,List,Loops,这里的问题类似,但这里我们不需要做任何计算,只需要建立列表 我有一些世界地区的清单: list.asia <- c("Central Asia", "Eastern Asia", "South-eastern Asia", "Southern Asia", "Western Asia") list.africa <- c("Northern Africa", "Sub-Saharan Africa", "Eastern Africa", "Middle Africa", "South

这里的问题类似,但这里我们不需要做任何计算,只需要建立列表

我有一些世界地区的清单:

list.asia <- c("Central Asia", "Eastern Asia", "South-eastern Asia", "Southern Asia", "Western Asia")
list.africa <- c("Northern Africa", "Sub-Saharan Africa", "Eastern Africa", "Middle Africa", "Southern Africa", "Western Africa")
此示例使用
list.asia
给出了预期结果:

 [1] "AFG" "ARM" "AZE" "BHR" "BGD" "BTN" "BRN" "KHM" "CHN" "HKG" "MAC" "CYP" "PRK"
[14] "GEO" "IND" "IDN" "IRN" "IRQ" "ISR" "JPN" "JOR" "KAZ" "KWT" "KGZ" "LAO" "LBN"
[27] "MYS" "MDV" "MNG" "MMR" "NPL" "OMN" "PAK" "PHL" "QAT" "KOR" "SAU" "SGP" "LKA"
[40] "PSE" "SYR" "TJK" "THA" "TLS" "TUR" "TKM" "ARE" "UZB" "VNM" "YEM"
可轻松保存为以下内容:

countries.list.asia <- subset$ISO_Alpha_3
然后我“循环”列表生成:(这不起作用)

for(列表中的i.大陆){

list.loop考虑使用一个整体列表,不要尝试将对象以迭代方式保存到全局环境中,并使用函数返回所需的输出,避免删除帮助对象。在R中,列表+函数可以用
lappy
封装(或其包装器
sapply
用于列表名称):

#实际对象的命名列表(非字符向量)
欧洲大陆
countries.list.asia <- subset$ISO_Alpha_3
list.continent <- c("list.asia","list.africa")
for(i in list.continent){
    list.loop <- sym(i)
    region <- subset(UN_M.49_Regions, Name %in% list.loop)
    subset <- subset(UN_M.49_Countries, Code %in% unlist(strsplit(region$Children, ", ")))
    paste("countries",list.loop, sep=".") <- subset$ISO_Alpha_3
    rm(region, subset, list.loop)
}
# NAMED LIST OF ACTUAL OBJECTS (NOT CHARACTER VECTOR)
list.continent <- list(list.asia = list.asia, list.africa = list.africa)

# BUILD NEW LIST OF SUBSETTED ITEMS
new_list.continent <- sapply(list.continent, function(item) {    
    region <- subset(UN_M.49_Regions, Name %in% item)
    sub <- subset(UN_M.49_Countries, Code %in% unlist(strsplit(region$Children, ", ")))

    return(sub$ISO_Alpha_3)
}, simplify = FALSE)

# SHOW OBJECT CONTENTS
new_list.continent$list.asia

new_list.continent$list.africa