r语言 - 使用 ifelse 函数重命名值的百分比



可以理解的是,可能有更简单的方法可以做到这一点,但我对ifelse((函数的工作原理感兴趣。例如,假设我想创建一个突变数据集,该数据集从原始数据集中的特定变量中删除底部 5% 和前 5% 的值。如何使用 ifelse(( 函数来完成此操作。我有这段不成功的代码。

newdataset <- olddataset %>%
mutate(new_variable = ifelse(old_variable <= 0.05, old_variable >= 0.95, NA, old_variable)

起初对我来说不是那么直观,但你显然可以为 ifelse 中的值参数提供一个向量。(不过,您必须注意测试表达式和值中使用的向量的长度。

首先,模拟一些数据。

data <- data.frame(var = rnorm(20))

然后,找到一组所需的分位数。然后使用ifelse。

q <- quantile(data$var, probs=c(0.05, 0.95))
ifelse(data$var <= q[[1]] | data$var >= q[[2]], NA, data$var)

如果你坚持使用变异,

mutate(data, new_var = ifelse(var <= q[[1]] | var >= q[[2]], NA, var))

最新更新