更改R中for循环中的列表项 我曾经在C++中工作,我认为我误解了循环(或迭代)是如何工作的。我想改变for循环中的列表项,但是for循环似乎只是临时拷贝,只会改变它?我怎样才能防止这种情况?这似乎是一个微不足道的初学者问题,但我找不到有关stackoverflow的教程/问题来解释为什么会发生这种情况
代码:更改R中for循环中的列表项 我曾经在C++中工作,我认为我误解了循环(或迭代)是如何工作的。我想改变for循环中的列表项,但是for循环似乎只是临时拷贝,只会改变它?我怎样才能防止这种情况?这似乎是一个微不足道的初学者问题,但我找不到有关stackoverflow的教程/问题来解释为什么会发生这种情况,r,for-loop,R,For Loop,代码: myListfor(myList中的项)创建一个名为item 如果要引用列表中的项目,最好使用myList[1]调用它们的位置,或者使用myList[[“a”]]调用它们的名称 您可以使用索引(如建议的注释之一)在列表中进行for循环 myList正如@nicola所说,lappy应该是一个不错的选择。下面是一个基于您的问题的示例 myList <- list(a = 1, b = 1, c = 1, d = 1) # output: 1,1,1,1 lapply(myList,
myListfor(myList中的项)
创建一个名为item
如果要引用列表中的项目,最好使用myList[1]
调用它们的位置,或者使用myList[[“a”]]
调用它们的名称
您可以使用索引(如建议的注释之一)在列表中进行for循环
myList正如@nicola所说,lappy
应该是一个不错的选择。下面是一个基于您的问题的示例
myList <- list(a = 1, b = 1, c = 1, d = 1) # output: 1,1,1,1
lapply(myList, function(x) 3) # output: 3,3,3,3
# lapply iterates over every list item
myListmyList[]你应该使用类似于for(我在我的列表中)的东西myList[[i]]@jogo:我的问题是——为什么不呢?我可以执行打印(项目)
并从列表中输出项目。这里的一般规则是什么,什么时候创建新对象而不是访问现有对象?@nicola:这可能行得通,我试试。有没有办法像C++那样做呢?实际上,我的变量的名称类似于models$samples\u list$samples$predictions
,我不希望每次都键入它。。。这会造成非常长且令人困惑的行:-\n您应该使用更惯用的代码,而不应该尝试应用其他语言的逻辑。R和C++与基本上任何观点都有很大的不同。很有可能,您所需要的只需一个lappy
或一个矢量化操作即可完成,但需要更具体地理解您所需要的。
myList <- list(a=1, b=2, c=4, d=5)
for(i in 1:length(myList)){
myList[i] <- 3
}
myList
myList <- list(a=1, b=2, c=1, d=5)
myList=='1'
myList[myList=='1']=3
myList
myList[names(myList)=='a']=9
myList
myList <- list(a = 1, b = 1, c = 1, d = 1) # output: 1,1,1,1
lapply(myList, function(x) 3) # output: 3,3,3,3
# lapply iterates over every list item