r - R. 如果 B 列以字符开头,则替换 A 列的元素
问题描述
我有一个数据框 A(真正的 A 有 1,000,000 行):
model term
2 SEX
2 GAN
2 GT_rs354
6 SEX
6 GAN
6 GT_rs222
3 SEX
3 GAN
3 GT_rs87623
使用 R,我想创建一个新列“SNP”:每当列“term”有一个以“GT_”开头的元素时,我希望新列“SNP”用相应的“GT_x”替换所有出现的“model” “ 元素。我会得到:
model term SNP
2 SEX GT_rs354
2 GAN GT_rs354
2 GT_rs354 GT_rs354
6 SEX GT_rs222
6 GAN GT_rs222
6 GT_rs222 GT_rs222
3 SEX GT_rs87623
3 GAN GT_rs87623
3 GT_rs87623 GT_rs87623
解决方案
一个dplyr
解决方案
library(dplyr)
df %>% group_by(model) %>% mutate(SNP = term[which(grepl("^GT_", term))])
推荐阅读
- python - 如何以简单的方式将变量从 html 传递到 python?
- c# - 在阅读写入的内容之前,我是否需要“倒带”一个流?
- c# - 使用c#下载源代码时出错
- sql - 在 Dapper SqlBuilder 或 sp_exectuesql 中运行 SET 语句
- javascript - vue-router- 将查询参数从旧路由持久化到新路由的方式
- git - ssh 到远程时如何强制 git 使用不同的端口?
- python - Python将日期转换为日期时间
- java - 在数据库android开发中更改语言环境
- java - 比预期更多的结果 Java
- php - 在codeigniter的form_dropdown中使用数组时摆脱optgroup并获得真正的价值