我想创建一个List
每次for loop
运行都会变化的。实际上,新list
长度取决于现有的长度List
。以下是我的大型代码的一小部分:
for (i in 1:length(df1$x)) {
for (j in 1:length(df2$y[[i]])) {
if (df1$x[i] == df2$y[[i]][j]) {
}
}
}
在代码中,df2$y
是我的列表,我的第二个for loop
长度是基于我的df2$y
列表的长度。基本上,我正在访问df2$y
list中的元素并与进行比较df1$x
。因此,If condition
碰面了,我想将该列表元素保存到新创建的列表中。列表的长度很大。因此,许多列表元素都将满足条件。因此,我需要在中创建一个新列表for loop
。
谢谢你们的评论。因此,我自己解决了自己的问题,我意识到这很简单。在我的回答中,我newList
最初创建了一个固定的新列表,我知道此列表对于减少内存的分配是很重要的,以减少计算时间。然后我在遇到新元素时将其保存到了newList
using中。以下是对我有效的方法:[[]][]
if condition
newList <- vector("list", N)
for (i in 1:length(df1$x)) {
for (j in 1:length(df2$y[[i]])) {
if (df1$x[i] == df2$y[[i]][j]) {
newList[[i]][j] <- df2$z[j]
}
}
}
注意:我自己回答了我的问题,因为我想告知我问题已经解决。我非常感谢您的所有意见和帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句