r - R:如果条目以字母结尾,则将上面一或两行的信息粘贴到空单元格中
问题描述
我有一个大数据框,其中有一些我希望填充的空单元格。数据帧的快照在这里1
如果加入以字母结尾,我想以某种方式填充空单元格,并粘贴“上面的下一个加入码,如果它不以字母结尾+该行的加入码”例如对于第 3 行:Q15149 V144M,对于行4、Q15149 V117M。
任何有关如何解决此问题的帮助将不胜感激。
解决方案
library(tidyverse)
data <- tibble(
Accession = c("Q09666", "Q15149", "V144M", "V117M"),
Gene.Symbol = c("AHNAK", "PLEC", NA, NA)
)
data
#> # A tibble: 4 x 2
#> Accession Gene.Symbol
#> <chr> <chr>
#> 1 Q09666 AHNAK
#> 2 Q15149 PLEC
#> 3 V144M <NA>
#> 4 V117M <NA>
fills <-
data %>%
transmute(id = row_number(), Accession = Accession) %>%
filter(!Accession %>% str_ends("[A-Z]"))
fills
#> # A tibble: 2 x 2
#> id Accession
#> <int> <chr>
#> 1 1 Q09666
#> 2 2 Q15149
data %>%
mutate(
Gene.Symbol = Gene.Symbol %>% map2_chr(row_number(), ~ {
ifelse(!is.na(.x), .x, fills %>% filter(id <= .y) %>%
pull(Accession) %>%
last())
})
)
#> # A tibble: 4 x 2
#> Accession Gene.Symbol
#> <chr> <chr>
#> 1 Q09666 AHNAK
#> 2 Q15149 PLEC
#> 3 V144M Q15149
#> 4 V117M Q15149
由reprex 包(v2.0.1)创建于 2021-09-14
推荐阅读
- android - 在 libcore.io.Linux.access(Linux.java:-1)的线程“SharedPreferencesImpl-load”中发生异常“android.system.ErrnoException”
- visual-studio-extensions - 无法下载任何 Microsoft Visual Studio 2019 扩展
- java - 有没有办法在我的 Java 代码中调用 2 个类?
- visual-studio-code - 无法运行 yacc 或 flex 命令 VS Code
- powershell - 尝试从脚本中的子文件夹获取 acl 时出错
- syntax - Terraform:如何在资源中进行数学运算
- jenkins-plugins - 使用 Kubernetes Jenkins 插件自定义代理镜像
- flutter - 在 Flutter 中从 Cloud Firestore 文档中读取多个数组
- python - Docker Compose 来自 Bitbucket 克隆存储库。本地构建错误,AppBuild 退出代码,它是什么?
- php - 我的下拉菜单分别显示所有选项,如何解决?