如何在r中删除一列中的特定字符?

问题描述 投票:0回答:1

我有一个ID的数据集。

VARIANT_ID
01_1254436_A_G_1
02_2254436_A_G_1 
03_3255436_A_G_1 
10_10344745_A_G_1 
11_11256437_A_G_1 
11_11343426_A_G_1 
12_12222431_A_G_1
14_14200436_A_G_1 
15_15256789_A_G_1 

我希望只删除ID以01-09开头的行的开头字符中的0,但在不删除列中更远处的其他0的情况下,我难以做到这一点,而且我只看到其他语言的类似问题。

VARIANT_ID
1_1254436_A_G_1
2_2254436_A_G_1 
3_3255436_A_G_1 
10_10344745_A_G_1 
11_11256437_A_G_1 
11_11343426_A_G_1 
12_12222431_A_G_1
14_14200436_A_G_1 
15_15256789_A_G_1 

我想要的输出是: 只有每行开始的0被删除,我如何指定?我是生物学背景的,所以任何帮助将被感激。

输入数据。

structure(list(VARIANT_ID = c("01_1254436_A_G_1", "02_2254436_A_G_1", 
"03_3255436_A_G_1", "10_10344745_A_G_1", "11_11256437_A_G_1", 
"11_11343426_A_G_1", "12_12222431_A_G_1", "14_14200436_A_G_1", 
"15_15256789_A_G_1")), row.names = c(NA, -9L), class = c("data.table", 
"data.frame"))
r string dataframe bioinformatics
1个回答
4
投票

您可以使用 gsub 函数。使用^来表示字符串的开始,这样你就不会在其他地方删除0。

x$VARIANT_ID <- gsub("^0", "", x$VARIANT_ID)

0
投票

如果你喜欢用"^"来表示字符串的开始,这样你就不会在其他地方去掉0。tidyverse 解决办法

ggg$new_variant <- stringr::str_replace(ggg$VARIANT_ID, "^0", "")

0
投票

我们可以用 sub

df1$VARIANT_ID <- sub("^0", "", df1$VARIANT_ID)

0
投票

可选方案,带 tidyverse

df$VARIANT_ID <- str_remove(df$VARIANT_ID, pattern = "^0")
© www.soinside.com 2019 - 2024. All rights reserved.