gpt4 book ai didi

r - 分配给具有重复索引的矩阵的子集

转载 作者:行者123 更新时间:2023-12-04 12:22:21 24 4
gpt4 key购买 nike

不确定这是否符合 R-Inferno 中的条目,但有人可以评论以下替换工作方式背后的逻辑吗?

foo<-matrix(1:6,2)
bar<-foo[2,c(1,3,1)]
bar
# [1] 2 6 2
foo[2,c(1,3,1)]<-foo[2,c(1,3,1)]+5
foo
# [,1] [,2] [,3]
# [1,] 1 3 5
# [2,] 7 4 11

我的问题是:生成 bar 时,重复坐标会导致输出中出现重复元素,但在修改 foo 时,重复坐标做 不是 导致重复加法运算。 (相比之下, for(j in c(1,3,1) ) foo[2,j]<-foo[2,j]+5 确实如此)。为什么以及究竟如何 [<-基本上忽略重复索引?

最佳答案

来自 help("[<-") :

Subassignment is done sequentially, so if an index is specified more than once the latest assigned value for an index will result.


foo<-matrix(1:6,2)

foo[1,rep(1,2)] <- c(1,42)

# [,1] [,2] [,3]
#[1,] 42 3 5
#[2,] 2 4 6

关于r - 分配给具有重复索引的矩阵的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22305251/

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