我想了解我正在测试的这段 R 代码中发生了什么。我想用另一个向量替换向量的一部分。和值在 data.frame 中original。replacement我想original用相应的replacement值替换与列匹配的向量的所有元素。我有更大问题的答案,但我无法理解它是如何工作的。
这是一个简单的例子:
> vecA <- 1:5;
> vecB <- data.frame(orig=c(2,3), repl=c(22,33));
> vecA[vecA %in% vecB$orig] <- vecB$repl #Question-1
> vecA
[1] 1 22 33 4 5
> vecD<-data.frame(orig=c(5,7), repl=c(55,77))
> vecA[vecA %in% vecD$orig] <- vecD$repl #Question-2
Warning message:
In vecA[vecA %in% vecD$orig] <- vecD$repl :
number of items to replace is not a multiple of replacement length
> vecA
[1] 1 22 33 4 55
以下是我的问题:
- Line-3 上的作业是如何工作的?LHS 表达式是一个 2 项向量,而 RHS 是一个 5 元素向量。
- 为什么第 6 行的作业会发出警告(但仍然有效)?