【问题标题】:Reversing variable values in R反转R中的变量值
【发布时间】:2020-04-10 15:23:09
【问题描述】:

我已经看到关于重新编码变量的各种问题(例如Recoding variables with R),但我想知道是否有一种简单的方法可以完全“翻转”数据。我目前正在使用变量x,其值从 0 到 30,用于计算患者未在 ICU 中度过的天数。我想要的是在 ICU 中度过的天数,即如果有人没有在 ICU 中度过一天,那么他们的值 x=30 但我想要一个值 x=0 等等。显然我可以单独重新编码每个值,但为了节省击键和更多地了解 R,我想知道是否有一个简单的解决方案。

【问题讨论】:

  • 只需 30 - 天数:30-(1:30)

标签: r variables recode


【解决方案1】:

您可以使用 (x - max(x)) * -1) + min(x) 反转数据

inv <- function(x){ ((x - max(x)) * -1) + min(x) }
  icu <- 0:30
    inv(icu)

不简单减去的原因是这也适用于具有负值的向量。

( icu <- seq(-1,1,0.1) )
  inv(icu)

【讨论】:

  • 我认为这是一个更好的解决方案,因为它通常可以工作。谢谢。
【解决方案2】:

R 中的加法和减法是矢量化的。这意味着您可以将一个函数应用于一个向量,它会返回一个向量,而不必遍历该向量。

set.seed(999)
ICU = sample(30) ## number of days in ICU
not_ICU = 30 - ICU ## returns number of days not in ICU

这有帮助吗?

【讨论】:

    【解决方案3】:

    使用减法:

    x<-0:30
    y<-30-x
    
    

    【讨论】:

    • 简单而优雅。我喜欢它
    猜你喜欢
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多