【发布时间】:2020-09-22 17:52:13
【问题描述】:
我正在尝试替换长向量值,例如:
- 如果该值等于 1 、 2 或 3 ,那么它将被 1 替换。
- 如果该值等于 6 , 7 , 8 那么它将被 2 替换。
- 如果该值等于 4 、 5 、 9 ,那么它将被 3 替换。
我尝试了以下方法,但没有给出预期的输出:
set.seed(1)
x=sample(c(1,2,3,4,5,6,7,8,9),size=15,replace=TRUE)
print("step1")
x
as.numeric(gsub(c(1,2,3), 1, x))
as.numeric(gsub(c(6,7,8), 2, x))
as.numeric(gsub(c(4,5,9), 3, x))
print("step2")
x
我得到了以下内容:
[1] "step1"
3 4 6 9 2 9 9 6 6 1 2 2 7 4 7
Warning message in gsub(c(1, 2, 3), 1, x):
"l'argument pattern a une longueur > 1 et seul le premier élément est utilisé"
3 4 6 9 2 9 9 6 6 1 2 2 7 4 7
Warning message in gsub(c(6, 7, 8), 2, x):
"l'argument pattern a une longueur > 1 et seul le premier élément est utilisé"
3 4 2 9 2 9 9 2 2 1 2 2 7 4 7
Warning message in gsub(c(4, 5, 9), 3, x):
"l'argument pattern a une longueur > 1 et seul le premier élément est utilisé"
3 3 6 9 2 9 9 6 6 1 2 2 7 3 7
[1] "step2"
3 4 6 9 2 9 9 6 6 1 2 2 7 4 7
更准确地说,我想将向量 x 中的一组值(例如 {6,7,8})替换为一个特定值(例如 2)。
我希望我的问题很清楚,我尝试了类似问题的解决方案,但没有获得预期的输出。
【问题讨论】:
标签: r