如何在R中迭代列表的列表?



我是R的新手,无法在R中找到以下Python代码的计数器代码。请帮助

list1 = [10, 20] # or a tuple
list2 = [30, 40] # or a tuple
mylist = [list1, list2] # can be tuple of tuples also
for _list in mylist:
a = _list[0]
b = _list[1]
# usage of a and b

我写了下面的R脚本:

list1 <- list(10, 20)
list2 <- list(30, 40)
mylist <- list(list1, list2)
for( j in 1:length(mylist))
{
print(j)
list1=mylist[[j]]
print(list1)
# Works perfect till here
# Error in below lines
a=list1[[0]]
b=list1[[1]]
# usage of a and b
}

R中,索引从1开始,而不是0 -PythonR的区别。因此,如果我们将其更改为12,它就可以工作了。此外,1:length可能被bug较少的seq_along

所取代。
for( j in seq_along(mylist)){
print(j)
list1 = mylist[[j]]
print(list1)    
a=list1[[1]]
b=list1[[2]]
# usage of a and b
}
[1] 1
[[1]]
[1] 10
[[2]]
[1] 20
[1] 2
[[1]]
[1] 30
[[2]]
[1] 40

注意:list1,a,b是在循环中创建的对象,每次迭代都会更新。目前尚不清楚最终结果

您的python代码的翻译可能如下

> for (lst in mylist) {
+   a <- lst[[1]]
+   b <- lst[[2]]
+   print(c(a, b))
+ }
[1] 10 20
[1] 30 40

相关内容

  • 没有找到相关文章

最新更新