You*_*ser 4 r dplyr tidyr tidyverse data-wrangling
我想根据数据集中预先存在的行的值创建新行。有两个问题:首先,某些单元格值需要保持不变,而其他单元格值必须增加 +1。其次,我需要以相同的次数循环遍历每一行。
我觉得用数据会更容易理解
我从这里开始:
mydata <- data.frame(id=c(10012000,10012002,10022000,10022002),
col1=c(100,201,44,11),
col2=c("A","C","B","A"))
Run Code Online (Sandbox Code Playgroud)
这就是我想要的:
mydata2 <- data.frame(id=c(10012000,10012001,10012002,10012003,10022000,10022001,10022002,10022003),
col1=c(100,100,201,201,44,44,11,11),
col2=c("A","A","C","C","B","B","A","A"))
Run Code Online (Sandbox Code Playgroud)
请注意我如何在每个新行的 id 列单元格中添加 +1,但 col1 和 col2 保持不变。
谢谢
library(tidyverse)\n\nmydata |> \n mutate(id = map(id, \\(x) c(x, x+1))) |> \n unnest(id)\n#> # A tibble: 8 \xc3\x97 3\n#> id col1 col2 \n#> <dbl> <dbl> <chr>\n#> 1 10012000 100 A \n#> 2 10012001 100 A \n#> 3 10012002 201 C \n#> 4 10012003 201 C \n#> 5 10022000 44 B \n#> 6 10022001 44 B \n#> 7 10022002 11 A \n#> 8 10022003 11 A\nRun Code Online (Sandbox Code Playgroud)\n由reprex 包于 2022 年 4 月 14 日创建(v2.0.1)
\n