我正在尝试在for-loop
中创建一个列表,每个步骤i=1:200
都会更新。
就我而言,在每个步骤i
中,我都需要列表元素i+1
和i+2
,仅此而已。
我最终会得到一个长度为202的列表,我希望这会大大减慢我的计算速度(当前200步的时间约为1小时)。
为了缩短列表,我想删除我不需要的每个列表元素i
(即所有i = i)。
不幸的是,我试图简单地删除for-loop
中的列表元素
mylist[[i]]<-NULL
或mylist<-mylist[-i]
。两者都在循环外工作正常,但不在循环内部。这是一个简短的例子:
mylist<-list()
for (i in 1:3){
mylist[[i+1]]<-c(1:10)*i
mylist[[i]]<-NULL}
mylist
mylist<-list()
for (i in 1:3){
mylist[[i+1]]<-c(1:10)*i
mylist<-mylist[-i]}
mylist
mylist[[i]]<-NULL
mylist<-mylist[-i]
答案 0 :(得分:0)
设置为NA
是否适合您?
mylist<-list()
for (i in 1:100){
mylist[[i+1]]<-c(1:10)*i
mylist[[i+2]]<-c(11:20)*i
mylist[[i]] <- NA
}
mylist
# [[1]]
# [1] NA
# ...
# [[100]]
# [1] NA
#
# [[101]]
# [1] 100 200 300 400 500 600 700 800 900 1000
#
# [[102]]
# [1] 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000