gpt4 book ai didi

列中的 R 部分 gsub

转载 作者:行者123 更新时间:2023-12-01 11:16:27 24 4
gpt4 key购买 nike

我有一个关于如何为 df 的第一列部分 gsub 的问题。我可以删除冒号后的所有字符串,但我想保留以 19 开头的行的信息。

df$V1:

rs1231243:G:T:0
rs483294:C:T:5098723
19:4783234:T:G
rs19873423:A:C
19:83947355:C:T
kpg897324
rs3287492:G:C

Desired output:

rs1231243
rs483294
19:4783234:T:G
rs19873423
19:83947355:C:T
kpg897324
rs3287492

code:
df$V1 <- gsub("\\:.*","",df$V1)

我不知道如何有条件地 gsub 或其他方法。请指教。谢谢。

最佳答案

你可以使用否定。前瞻:

gsub("^(?!19)([^:]+).*", "\\1", df$V1, perl = T)

参见 a demo on regex101.com .


这产生了

df["V2"] <- gsub("^(?!19)([^:]+).*", "\\1", df$V1, perl = T)
df
V1 V2
1 rs1231243:G:T:0 rs1231243
2 rs483294:C:T:5098723 rs483294
3 19:4783234:T:G 19:4783234:T:G
4 rs19873423:A:C rs19873423
5 19:83947355:C:T 19:83947355:C:T
6 kpg897324 kpg897324
7 rs3287492:G:C rs3287492

关于列中的 R 部分 gsub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50403720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com