我有一个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"))
您可以使用 gsub
函数。使用^来表示字符串的开始,这样你就不会在其他地方删除0。
x$VARIANT_ID <- gsub("^0", "", x$VARIANT_ID)
如果你喜欢用"^"来表示字符串的开始,这样你就不会在其他地方去掉0。tidyverse
解决办法
ggg$new_variant <- stringr::str_replace(ggg$VARIANT_ID, "^0", "")
我们可以用 sub
也
df1$VARIANT_ID <- sub("^0", "", df1$VARIANT_ID)
可选方案,带 tidyverse
df$VARIANT_ID <- str_remove(df$VARIANT_ID, pattern = "^0")