我在尝试用增量的连续变量来创建分类组。
score <- sample(1:100,20,replace=TRUE)
df <- data.frame(score)
我想在score列中基于增量20(不含)创建新的分类列。我还希望新分类列的名称也采用这种格式。
df <- df%>%
mutate(G1_0_20 = case_when(score >= 0 & score <20 ~ 1),
G2_20_40 = case_when(score >= 20 & score < 40 ~ 1),
G3_40_60 = case_when(score >= 40 & score < 60 ~ 1),
G4_60_80 = case_when(score >= 60 & score < 80 ~ 1),
G5_80_100 = case_when(score >= 80 & score < 100 ~ 1))
df[is.na(df)] <- 0
df
我想知道是否有一种更简单、更快速的方法来为需要从值0到4000以20为增量创建组的数据集创建此函数。
另外,如果我想从值0到100递增20,然后从200到300递增100。
我会很感激所有的帮助!谢谢!
3条答案
按热度按时间i5desfxk1#
我们可以使用
cut
来创建分组,然后使用dummy_cols
从fastDummies
创建虚拟列vwkv1x7d2#
为此,我们可以使用
dplyover::over()
并创建一个序列,以便使用seq()
循环。免责声明:软件包不在CRAN上,我是维护者。.names
参数允许我们动态地创建漂亮的名字,我们可以使用{x_idx}
来访问索引元素的编号,使用{x}
来访问迭代的值。下面的例子显示了一个从
20
到100
的序列,但是我们可以通过替换数字来生成任何序列。由reprex package(v2.0.1)于2023年2月27日创建
ilmyapht3#
碱基R: