繁体   English   中英

根据 R 中另一列的 < 或 >= 数值创建非数值列

[英]Create a non numerical column based on < or >= numerical value of another column in R

我有一个 df$ 列

df$column (-0.5, 1, -0.5, 0.78, -0.78, 0, -1)

我想根据 column2 中的值创建一个值为“<med”或“>=med”的新列

df$column (-0.5, 1, -0.5, 0.78, -0.78, 0, -1)
df$new    (<med, >=med, <med, >=med, <med, <med)

我当前的代码,我得到“mutate()”输入问题的错误......输入是if else(..)

df2 <- df %>% mutate(new = ifelse(df$column >=0 ~ ">=med", ifelse(df$column <0 ~ "<med")))

任何帮助总是值得赞赏的

这会做这项工作吗?:

df$column (-0.3678, 1, -0.67, 0.78, 0.78, 0, -1)
df$column2 <- NA
med <- median(df$column)
df$column2[df$column < med] <- "<med"
df$column2[df$column >= med] <- ">=med"

或者以更有效的方式使用ifelse

df$column (-0.3678, 1, -0.67, 0.78, 0.78, 0, -1)
df$column2 <- ifelse(df$column < median(df$column), "<med", ">=med")

我不确定,如果我理解正确的话,但这不会起作用吗?

df$new = ifelse(df$column >= 0, ">=med", "<med")

如果您想要 dplyr 解决方案,请尝试:

df_new <- df %>%
mutate(new = if_else(column >= 0, '>=med', '<med'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM