如何用lapply实现动态生成与向量元素同名的变量?
用lapply替代for循环生成同名变量
你原代码里有两处问题:一是变量名写错了,columns_to_consider应该对应你定义的columns_s;二是当前函数里的i=i只是在函数内部赋值,不会把变量暴露到全局环境。要实现自动生成与元素同名且值为自身的变量,得用assign()函数把变量绑定到全局环境,具体代码如下:
columns_s <- c("kingdom", "family") ## 用户可向向量中添加更多元素 lapply( columns_s, FUN = function(i){ assign(i, i, envir = .GlobalEnv) })
运行这段代码后,在控制台调用变量就能得到你要的结果:
> kingdom [1] "kingdom" > family [1] "family"
后续如果给columns_s添加新元素(比如columns_s <- c(columns_s, "genus")),再运行这段lapply代码,就会自动生成genus变量,值为"genus"。
内容的提问来源于stack exchange,提问作者mapvin vin
相关产品推荐
相关产品推荐

