如何解决更改仅相差一个数字的多个列表的空值
我想更改仅相差一个数字的多个列表的空值。在此示例中,我有3个列表:“ a1”,“ a2”和“ a3”,并且我想将其空值更改为“ THERE'S NO VALUE”。我已经尝试过使用“粘贴”功能进行for循环,但无法运行。这是我的代码的简化版本:
functionAppScaleLimit
我也尝试过使用assign函数,但是它会更改所有变量,并且我只想更改每个变量的null元素(我怀疑是为什么,但是我不知道如何更改该函数才能工作):
a1<-list(NULL,"a","b")
a2<-list("d",NULL,"m")
a3<-list("k","l")
for (i in 1:3){
var<-paste("a",i,sep = "")
var[var=='NULL']<-"THERE'S NO VALUE"
}
谢谢。
解决方法
我们使用mget
来获取list
中的对象,然后用list
遍历lapply
,用NULL
替换元素list2env
新值,然后根据需要使用list2env(lapply(mget(paste0("a",1:3)),function(x) {
x[sapply(x,is.null)] <- "THERE'S NO VALUE"
x}),.GlobalEnv)
更改全局环境中的对象值
a1
[[1]]
[1] "THERE'S NO VALUE"
[[2]]
[1] "a"
[[3]]
[1] "b"
a2
[[1]]
[1] "d"
[[2]]
[1] "THERE'S NO VALUE"
[[3]]
[1] "m"
a3
[[1]]
[1] "k"
[[2]]
[1] "THERE'S NO VALUE"
[[3]]
[1] "l"
-现在检查对象
np.random.binomial(n=1,p=0.9,size=[1000])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。