我需要replace()
命令
replace(c(3,2,2,1),1:3,4:6)
我期待输出6,5,5,4
但得到4,5,6,1
我做错了什么?
我对替换是什么的理解:它查找第二个参数中第一个参数的元素的索引值(例如3是1:3中的第3个元素)然后用第三个参数中的元素替换它相同的指数(例如4:6中的第3个元素是6因此我期望向量中的第一个元素为6的原因)
谢谢。 (替换帮助文件没有示例...需要在此处要求澄清)
答案 0 :(得分:6)
虽然replace
没有提供您想要的行为,但使用match
很容易实现您想要的行为:
new[match(x,i)]
答案 1 :(得分:4)
这一切都在replace()
的描述中给出,只需仔细阅读:
‘replace’ replaces the values in ‘x’ with indices given in ‘list’
by those given in ‘values’. If necessary, the values in ‘values’
are recycled.
x <- c(3, 2, 2, 1)
i <- 1:3
new <- 4:6
所以这意味着你的情况:
x[i] <- new
答案 2 :(得分:2)
该命令表示采用向量c(3,2,2,1)并用1:3中的索引替换由向量4:6给出的值的组件。这给出了c(4,5,6,1)。