有没有办法在一行中创建具有多个因子水平的新df功能?

时间:2019-03-29 15:51:27

标签: r

是否有一种方法可以将一行中具有取决于现有列的多个因子级别的列添加到一行中的数据帧中?如果新列具有两个因子水平而不是两个以上因子,答案是否会改变?

#two factor level example
df <- mtcars

df$mpg_rating <- "bad"
df$mpg_rating[df$mpg>30] <- "good"
#three factor level example
df <- mtcars

df$mpg_rating <- "bad"
df$mpg_rating[df$mpg>20] <- "ok"
df$mpg_rating[df$mpg>30] <- "good"

我想在1行而不是2或3中创建“ mpg_rating”

2 个答案:

答案 0 :(得分:1)

{@ {1}}

findInterval

注意:它非常适合一行

答案 1 :(得分:1)

使用cut

transform(df, mpg_rating=cut(mpg, breaks=c(-Inf, 20, 30, Inf), labels = c("bad", "ok", "good")))