gpt4 book ai didi

替换列表中的数组元素 (R)

转载 作者:行者123 更新时间:2023-12-01 12:45:58 24 4
gpt4 key购买 nike

好的,情况是这样的:我有以下数组列表:

N <- c('A', 'B', 'C')
ll <- sapply(N, function(x) NULL)
ll <- lapply(ll, function(x) assign("x", array(0, dim = c(2,2)))) .

现在我想用给定的数量(比如 10)替换那些数组中位置 [1,1] 处的元素。我在做什么,在这个问题之后 here .也就是说,我正在执行以下操作:

x <- lapply(ll, function(x) {x[1,1] <- 10}),

这应该使 x 成为三个 2x2 数组的列表,其中 [1,1] 元素等于 10,所有其他元素等于 0。取而代之的是,我看到了这个:

> x <- lapply(ll, function(x) {x[2,1] <- 10})
> x
$A
[1] 10

$B
[1] 10

$C
[1] 10

对这里发生的事情有什么想法吗?

最佳答案

您不会返回整个矢量。因此,返回最后一个参数。也就是说,当你这样做时,

x <- lapply(ll, function(x) {x[2,1] <- 10})

你打算说:

x <- lapply(ll, function(x) {x[2,1] <- 10; return(x)})

如果您不指定返回值,则默认返回上次分配的值,即 10。您应该使用 return(x) 或等价的 x 如下:

x <- lapply(ll, function(x) {x[2,1] <- 10; x})
# $A
# [,1] [,2]
# [1,] 0 0
# [2,] 10 0
#
# $B
# [,1] [,2]
# [1,] 0 0
# [2,] 10 0
#
# $C
# [,1] [,2]
# [1,] 0 0
# [2,] 10 0

关于替换列表中的数组元素 (R),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15960328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com