【问题标题】:Using replace in R multiple times in function在函数中多次使用 R 中的替换
【发布时间】:2018-11-09 19:56:46
【问题描述】:

我尝试在一个函数中多次使用 R 的替换,但似乎只有最后一次使用。例如,使用 x where

x <- c(1:3) 

如果我想给每个奇数加一,我试过了

test <- function(x) {
replace(x,x==1,2)
replace(x,x==3,4)
}

但是 test(x) 导致 (1,2,4) 我希望它是 (2,2,4) - 换句话说,只有最后一个“替换”似乎有效。我知道我可以通过向量中的位置来引用这些值,但是如果我想自己引用这些值,有人知道如何解决这个问题吗?

非常感谢!

【问题讨论】:

  • 试试:x = ifelse(x%%2!=0, x+1, x)

标签: r function replace


【解决方案1】:

您需要将替换函数的输出分配给一个变量

x <- c(1:3) 
test <- function(x) {
  x <- replace(x,x==1,2)
  replace(x,x==3,4)
}
test(x)
[1] 2 2 4

或者使用dplyr中的case_when函数

library(dplyr)
case_when(x == 1 ~ 2,
          x == 3 ~ 4, 
          TRUE ~ as.double(x))
[1] 2 2 4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 2014-10-15
    • 1970-01-01
    相关资源
    最近更新 更多