作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含多个 4 位代码的数据框。根据第三位数字的值,我想通过以下方式操作数据框:
df <- data.frame("id"= c("1111","1231","1000","2222","2900")
df
我想将 df 转换为以下 df
{"1111","1231","1010","1011",...,"1099","2222","2910","2911",..."2999"}
最佳答案
library(dplyr)
dat <- tibble(id = 1:2, code = c("1111", "2201"))
dat
# # A tibble: 2 x 2
# id code
# <int> <chr>
# 1 1 1111
# 2 2 2201
dat %>%
filter(substr(code, 3, 3) == "0") %>%
rowwise() %>%
do({
newcodes <- sprintf("%02i", 0:3)
mutate(as_tibble(.)[rep(1, length(newcodes)),],
code = paste0(substr(code, 1, 2), newcodes))
}) %>%
bind_rows(filter(dat, substr(code, 3, 3) != "0"), .)
# # A tibble: 5 x 2
# id code
# <int> <chr>
# 1 1 1111
# 2 2 2200
# 3 2 2201
# 4 2 2202
# 5 2 2203
我从00到03,你可以随便填。
关于r - 如何在R中使用dplyr生成以当前行为条件的多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67738803/
我是一名优秀的程序员,十分优秀!