如果数据按几个因素分组后,如果有多个级别,我正在尝试为我的数据集编码一列 . 为简单起见,我使用mtcars数据集作为示例 . 我一直收到错误“错误:过滤条件不评估为逻辑向量” .
很明显,这种语法是不可接受的,但有没有人有更聪明的方法呢?
df_levels <- mtcars %>%
group_by(mpg) %>%
filter(nlevels(.$gear) > 1) %>%
mutate(Levels = 1) ##encode with a boolean value indicating more than one level
和
df_levels <- df_levels %>%
group_by(mpg) %>%
filter(nlevels(.$gear) < 1) %>%
mutate(Levels = 0)
因此,如果你点击新的df“df_levels”,并在df查看器中按mpg排序,你会看到一个列“level”= 0表示10.4 mpg的条目(因为只有gear = 3的数据),与30.4 mpg相关的列“级别”将具有值= 1,因为该数据分组中的齿轮有多个级别(齿轮= 4,齿轮= 5) .
2 回答
mtcars
中的变量gear
不是一个因素,所以我认为你的意思然后,试试这个:
我不确定你的问题是否是你所追求的,但至少它不会返回错误 .
需要明确的是,
dplyr
语法是非常干净的