【发布时间】:2014-03-10 16:04:56
【问题描述】:
不确定这是否符合 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 确实如此)。为什么[<- 本质上忽略了重复索引?
【问题讨论】: