Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如果嵌套列表的双括号位于其美元符号之前,会有什么区别?_R_List_Nested_Purrr - Fatal编程技术网

R 如果嵌套列表的双括号位于其美元符号之前,会有什么区别?

R 如果嵌套列表的双括号位于其美元符号之前,会有什么区别?,r,list,nested,purrr,R,List,Nested,Purrr,在嵌套列表中,如果双括号[[i]]位于美元符号$之前,会有什么区别?我很想知道它在试图取消列表方面有什么不同 两者的区别是什么 nested_list[[i]]$element 及 ? 我特别好奇,因为我的unested list是前一种情况,而一个关于使用purr的modify_depth函数取消列表的教程(链接如下)是后一种情况: 谢谢你的帮助 在第一种情况下,我们选择ith列表元素,然后提取名为“element”的元素 第二种方法是提取一个“元素”,然后得到ith值。这里,i可以是变量或

在嵌套列表中,如果双括号[[i]]位于美元符号$之前,会有什么区别?我很想知道它在试图取消列表方面有什么不同

两者的区别是什么

nested_list[[i]]$element

?

我特别好奇,因为我的unested list是前一种情况,而一个关于使用purr的modify_depth函数取消列表的教程(链接如下)是后一种情况:


谢谢你的帮助

在第一种情况下,我们选择
i
th列表元素,然后提取名为“element”的元素

第二种方法是提取一个“元素”,然后得到
i
th值。这里,
i
可以是变量或索引。但是
$i
假定有一个名为
i

lst1 <- list(hello = 1:3, world =  list(element = 2:4))
i <- "world"
# or it can be
# i <- 2

lst1[[i]]$element
#[1] 2 3 4

在第一种情况下,首先提取list
nested_list
的第i个成员,该成员可以命名也可以不命名。然后提取一个命名成员,
元素
。在第二种情况下,首先提取一个命名成员,
元素
。然后提取子列表
元素
的第i个成员。感谢akrun和@Rui Barradas。除了创建我自己的循环函数外,您是否知道一个函数,如purrr的modify_depth,可以帮助我取消对列表的测试,如上面的第一个案例?@WillM取决于列表中的值以及嵌套的深度。一个选项是
unnest
unnest\u wide
等。WillM没有一个小的可复制示例,很难给出具体的答案,因为
list
嵌套可以完全不同,元素可以是vector或data.frame等。
lst1 <- list(hello = 1:3, world =  list(element = 2:4))
i <- "world"
# or it can be
# i <- 2

lst1[[i]]$element
#[1] 2 3 4
lst2 <- list(element = list(hello = 1:3), another = 4:6)
i <- 1
lst2$element[[i]]
#[1] 1 2 3
lst2$element$i # it won't work because there is no element named 'i'
 #NULL