簡體   English   中英

在R中根據相對於特定字符的相對位置從字符串中刪除字符

[英]Remove characters from string based on relative position to specific character, in R

如何刪除v1的所有字符串中“ p” 之前的所有字符以及“ p”本身,如下數據框所示。

df1 <- data.frame(v1 = c("m0p1", "m5p30", "m11p20", "m59p60")) 

如何刪除“ p”和“ p”本身之后的所有字符? 謝謝

您可以使用gsub

# Remove everything before p
gsub("^.*?p(.*)","\\1",df1$v1,perl=TRUE)
#[1] "1"  "30" "20" "60"

# Remove everything after p
gsub("(.*)?p.*$","\\1",df1$v1,perl=TRUE)
# [1] "m0"  "m5"  "m11" "m59"

你也可以

sub('^[^p]*p', '', df1$v1)
#[1] "1"  "30" "20" "60"

要么

sub('p.*$', '', df1$v1)
#[1] "m0"  "m5"  "m11" "m59"

在p之后:

gsub('.*(?<=p)(\\d+)','\\1',df1$v1,perl=T)

在p之前:

gsub('(.*)(?=p).*','\\1',df1$v1,perl=T)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM