是否有一种方法可以将一行中具有取决于现有列的多个因子级别的列添加到一行中的数据帧中?如果新列具有两个因子水平而不是两个以上因子,答案是否会改变?
#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”
答案 0 :(得分:1)
{@ {1}}
findInterval
注意:它非常适合一行
答案 1 :(得分:1)
使用cut
transform(df, mpg_rating=cut(mpg, breaks=c(-Inf, 20, 30, Inf), labels = c("bad", "ok", "good")))