【问题标题】:Issue in replace function in RR中的替换功能问题
【发布时间】:2017-06-05 04:02:44
【问题描述】:

我有一个向量:

> a <- c(0,1,2,3,4)

我正在尝试用递增 1 的值替换所有内容的值,如下所示:

a <- (1,2,3,4,5)
> replace(a,a==4,5)
[1] 0 1 2 3 5

但是当我尝试将 3 替换为 4 时,出现了一些问题

replace(a,a==3,4)
[1] 0 1 2 4 4

3 和 5 都被转换为 4。

当我尝试用 3 替换 2 时,同样的情况发生

> replace(a,a==2,3)
[1] 0 1 3 3 4

有人可以指出我在这里做错了什么吗?

【问题讨论】:

  • 你在找一个
  • @waterling:谢谢!

标签: r vector replace


【解决方案1】:

replace 不会改变它的论点。

> a = c(0,1,2,3,4)
> replace(a,a==2,99)
[1]  0  1 99  3  4

但是a还是一样:

> a
[1] 0 1 2 3 4

因此,当您认为您已将 a 中的 4 转换为 5 时,您并没有。如果要更改a,请使用返回值:

> a
[1] 0 1 2 3 4
> a = replace(a,a==2,99)
> a
[1]  0  1 99  3  4

[正如 cmets 中指出的,有更好的方法可以将向量的所有值加 1,a=a+1 是最好的]

【讨论】:

    猜你喜欢
    • 2021-10-05
    • 2021-12-31
    • 1970-01-01
    • 2016-04-12
    • 2014-10-06
    • 1970-01-01
    • 2018-08-19
    • 2021-04-02
    • 1970-01-01
    相关资源
    最近更新 更多