我是 Rstudio/R 新手,想使用 R 在我的数据框中创建块。我希望数据框中出现蓝色的前 10 次在新列中分配数字 1。一旦数字 1 被分配了 10 次,如果一行包含颜色 = 蓝色,则应将 2 输入到新列中。我正在考虑以某种方式迭代行,但不知道该怎么做。数据框看起来像这样:
Day Color Color_block
13 01 Green NA
14 01 Green NA
15 01 Blue 1
16 01 Red NA
17 01 Red NA
18 01 Blue 2 # Say that that the Color = Blue above in row 15 was the 10th time number 1 was assigned
我觉得这并没有那么难,我自己也尝试了一些,但没有成功。也许有一个我没有看到的非常简单的解决方案。预先感谢!
我尝试使用向量来实现这一点,但发现很难理解它们的逻辑。我开始尝试构建一个函数,该函数有效,但对于应该实现的目标来说似乎非常冗长。
您还没有真正提供足够的数据来测试,但我认为这应该有效:
library(dplyr)
your_data |>
mutate(
color_block = ((row_number() - 1) %/% 10) + 1,
.by = Color
)