一种方法
基本R
使用
grep
,正在搜索
基因
transform(df, Gene_Name = apply(df[,-1], 1, \(x){
res <- toString(grep("gene", x, value=T))
replace(res, res == "", NA)}), check.names=F)
Column A V9_01 V9_02 Gene_Name
1 CDS 1 Index123 gene pla gene pla
2 CDS 2 gene dah gene dah
3 CDS 3 gene blah Location:456 gene blah
4 CDS 4 gene do gene rah gene do, gene rah
5 CDS 5 Index127 Location893 <NA>
具有
dplyr
使用
c_across
具有
rowwise
library(dplyr)
df %>%
rowwise() %>%
mutate(Gene_Name = toString(grep("gene", c_across(V9_01:V9_02), value=T)),
Gene_Name = replace(Gene_Name, Gene_Name == "", NA)) %>%
ungroup()
# A tibble: 5 Ã 4
`Column A` V9_01 V9_02 Gene_Name
<chr> <chr> <chr> <chr>
1 CDS 1 "Index123" gene pla gene pla
2 CDS 2 "" gene dah gene dah
3 CDS 3 "gene blah" Location:456 gene blah
4 CDS 4 "gene do" gene rah gene do, gene rah
5 CDS 5 "Index127" Location893 NA