访问R中列表列表的选定元素
我有一个这种类型的列表访问R中列表列表的选定元素,r,R,我有一个这种类型的列表子游戏[[I]]$Weight: [[1]] [1] 0.4720550 0.4858826 0.4990469 0.5115899 0.5235512 0.5349672 0.5458720 [8] 0.5562970 0.5662715 0.5758226 0.5849754 0.5937532 0.6021778 0.6102692 [15] 0.6180462 0.6255260 0.6327250 0.6396582 0.6463397 0.6527826 [[
子游戏[[I]]$Weight
:
[[1]]
[1] 0.4720550 0.4858826 0.4990469 0.5115899 0.5235512 0.5349672 0.5458720
[8] 0.5562970 0.5662715 0.5758226 0.5849754 0.5937532 0.6021778 0.6102692
[15] 0.6180462 0.6255260 0.6327250 0.6396582 0.6463397 0.6527826
[[2]]
[1] 0.4639948 0.4779027 0.4911519 0.5037834 0.5158356 0.5273443 0.5383429
[8] 0.5488623 0.5589313 0.5685767 0.5778233 0.5866943 0.5952111 0.6033936
[15] 0.6112605 0.6188291 0.6261153 0.6331344 0.6399002 0.6464260
[[3]]
[1] 0.4629488 0.4768668 0.4901266 0.5027692 0.5148329 0.5263534 0.5373639
[8] 0.5478953 0.5579764 0.5676339 0.5768926 0.5857755 0.5943041 0.6024984
[15] 0.6103768 0.6179568 0.6252543 0.6322844 0.6390611 0.6455976
我想要的是访问每个列表的所有j-th
元素。示例如果j=1
我必须获得:
>0.4720550 0.4639948 0.4629488
我怎么做?
我发现
但对我来说太狡猾了。
有一种更优雅的方法吗?如果
j=1
,那么你对子游戏[[i]]$Weight[[1]][1]
,子游戏[[i]]]$Weight[[2]][1]
和子游戏[[i]]$Weight[[3]][1]
。换句话说,您希望在每个列表元素上使用[1]
但是当你把一个向量子集时会发生什么呢?例如:
(x <- rnorm(5))
# [1] -1.8965529 0.4688618 0.6588774 0.2749539 0.1829046
x[3]
# [1] 0.6588774
请注意名称周围的反勾号。一个简单的[
会抛出一个错误,所以你需要引用它。类似+
的其他函数也是如此
因此,如果要获取每个列表元素的第一个元素,可以对列表的每个元素应用[
,传递它1
或任何j
是什么:
sapply(subgame[[i]]$Weight, `[`, 1)
如果
j=1
,那么您对子游戏[[i]]$Weight[[1]][1]
,子游戏[[i]]$Weight[[2]]][1]
和子游戏[[i]]]$Weight[[3]][1]
感兴趣。换句话说,您希望在每个列表元素上使用[1]
但是当你将一个向量子集时会发生什么呢?例如:
(x <- rnorm(5))
# [1] -1.8965529 0.4688618 0.6588774 0.2749539 0.1829046
x[3]
# [1] 0.6588774
请注意名称周围的反勾号。一个空的[
将抛出一个错误,因此您需要引用它。类似于+
的其他函数也是如此
因此,如果要获取每个列表元素的第一个元素,可以对列表的每个元素应用[
,传递它1
或任何j
是什么:
sapply(subgame[[i]]$Weight, `[`, 1)
如果
j=1
,那么您对子游戏[[i]]$Weight[[1]][1]
,子游戏[[i]]$Weight[[2]]][1]
和子游戏[[i]]]$Weight[[3]][1]
感兴趣。换句话说,您希望在每个列表元素上使用[1]
但是当你将一个向量子集时会发生什么呢?例如:
(x <- rnorm(5))
# [1] -1.8965529 0.4688618 0.6588774 0.2749539 0.1829046
x[3]
# [1] 0.6588774
请注意名称周围的反勾号。一个空的[
将抛出一个错误,因此您需要引用它。类似于+
的其他函数也是如此
因此,如果要获取每个列表元素的第一个元素,可以对列表的每个元素应用[
,传递它1
或任何j
是什么:
sapply(subgame[[i]]$Weight, `[`, 1)
如果
j=1
,那么您对子游戏[[i]]$Weight[[1]][1]
,子游戏[[i]]$Weight[[2]]][1]
和子游戏[[i]]]$Weight[[3]][1]
感兴趣。换句话说,您希望在每个列表元素上使用[1]
但是当你将一个向量子集时会发生什么呢?例如:
(x <- rnorm(5))
# [1] -1.8965529 0.4688618 0.6588774 0.2749539 0.1829046
x[3]
# [1] 0.6588774
请注意名称周围的反勾号。一个空的[
将抛出一个错误,因此您需要引用它。类似于+
的其他函数也是如此
因此,如果要获取每个列表元素的第一个元素,可以对列表的每个元素应用[
,传递它1
或任何j
是什么:
sapply(subgame[[i]]$Weight, `[`, 1)
我想添加一个解决方案,返回您想要的
子游戏列表中每个元素的权重
列表的结果
> subgame <- list(list(weight = list(c(1, 2), c(3, 4), c(5, 6))), list(weight = list(c(7, 8), c(9, 10), c(11, 12))))
>
> j = 1
>
> do.call(rbind, subgame[[1]]$weight)[,j]
[1] 1 3 5
>
> lapply(subgame, function(x) {do.call(rbind, x$weight)[,j]})
[[1]]
[1] 1 3 5
[[2]]
[1] 7 9 11
>子游戏
>j=1
>
>do.call(rbind,子游戏[[1]]$weight)[,j]
[1] 1 3 5
>
>lappy(子游戏,函数(x){do.call(rbind,x$weight)[,j]})
[[1]]
[1] 1 3 5
[[2]]
[1] 7 9 11
我想添加一个解决方案,返回您想要的子游戏
列表中每个元素的权重
列表的结果
> subgame <- list(list(weight = list(c(1, 2), c(3, 4), c(5, 6))), list(weight = list(c(7, 8), c(9, 10), c(11, 12))))
>
> j = 1
>
> do.call(rbind, subgame[[1]]$weight)[,j]
[1] 1 3 5
>
> lapply(subgame, function(x) {do.call(rbind, x$weight)[,j]})
[[1]]
[1] 1 3 5
[[2]]
[1] 7 9 11
>子游戏
>j=1
>
>do.call(rbind,子游戏[[1]]$weight)[,j]
[1] 1 3 5
>
>lappy(子游戏,函数(x){do.call(rbind,x$weight)[,j]})
[[1]]
[1] 1 3 5
[[2]]
[1] 7 9 11
我想添加一个解决方案,返回您想要的子游戏
列表中每个元素的权重
列表的结果
> subgame <- list(list(weight = list(c(1, 2), c(3, 4), c(5, 6))), list(weight = list(c(7, 8), c(9, 10), c(11, 12))))
>
> j = 1
>
> do.call(rbind, subgame[[1]]$weight)[,j]
[1] 1 3 5
>
> lapply(subgame, function(x) {do.call(rbind, x$weight)[,j]})
[[1]]
[1] 1 3 5
[[2]]
[1] 7 9 11
>子游戏
>j=1
>
>do.call(rbind,子游戏[[1]]$weight)[,j]
[1] 1 3 5
>
>lappy(子游戏,函数(x){do.call(rbind,x$weight)[,j]})
[[1]]
[1] 1 3 5
[[2]]
[1] 7 9 11
我想添加一个解决方案,返回您想要的子游戏
列表中每个元素的权重
列表的结果
> subgame <- list(list(weight = list(c(1, 2), c(3, 4), c(5, 6))), list(weight = list(c(7, 8), c(9, 10), c(11, 12))))
>
> j = 1
>
> do.call(rbind, subgame[[1]]$weight)[,j]
[1] 1 3 5
>
> lapply(subgame, function(x) {do.call(rbind, x$weight)[,j]})
[[1]]
[1] 1 3 5
[[2]]
[1] 7 9 11
>子游戏
>j=1
>
>do.call(rbind,子游戏[[1]]$weight)[,j]
[1] 1 3 5
>
>lappy(子游戏,函数(x){do.call(rbind,x$weight)[,j]})
[[1]]
[1] 1 3 5
[[2]]
[1] 7 9 11
你能更好地解释[
运算符的含义吗?你能更好地解释[
运算符的含义吗?你能更好地解释[
运算符的含义吗?