【发布时间】:2020-04-23 14:47:08
【问题描述】:
例如,我有一个带有模型参数的config.R 文件,如下所示:
var1 = "Fruit"
var2 = "Vegetables"
country = c("BRAZIL", "ECUADOR", "Georgia")
flag = NULL
peak = 30
years = c(2010, 2020)
remove1 = c("Bananas_ZZ_100s", "Apple_150-300_Pk", "Mango_mono")
remove2 = c("Tomato_ZR_400s", "cabbage300_Pk")
然后,我加载配置文件:
params = new.env()
source("config/config.R", params)
params = mget(ls(params), envir = params)
并获取带参数的命名列表:
> print(params)
$var1
[1] "Fruit"
$var2
[1] "Vegetables"
$country
[1] "BRAZIL" "ECUADOR" "Georgia"
等等
我想将参数列表中的字符变量转换为小写,两个变量除外:remove1 和 remove2
我能够以这种方式转换列表中的所有个字符变量:
params = lapply(params, function(params) {
if (is.character(params)) return(tolower(params))
else return(params)
})
但我不知道如何将此函数(或者可能使用 for 循环)应用于所有字符 var。排除几个变量。
如果有任何帮助,我将不胜感激!
附: 我想得到什么:
> print(params)
$var1
[1] "fruit"
$var2
[1] "vegetables"
$country
[1] "brazil" "ecuador" "georgia"
$flag
NULL
$peak
[1] 30
$years
[1] 2010 2020
$remove1
[1] "Bananas_ZZ_100s" "Apple_150-300_Pk" "Mango_mono"
$remove2
[1] "Tomato_ZR_400s" "cabbage300_Pk"
【问题讨论】:
标签: r list for-loop apply lapply