R:在第一个空间之后提取



我正在使用R编程语言。我发现了这个问题,它从第一个空格的右边提取所有内容:

#https://stackoverflow.com/questions/15895050/using-gsub-to-extract-character-string-before-white-space-in-r
dob <- c("9/9/43 12:00 AM/PM", "9/17/88 12:00 AM/PM", "11/21/48 12:00 AM/PM")
gsub( " .*$", "", dob )
# [1] "9/9/43"   "9/17/88"  "11/21/48"

是否可以调整此代码以提取第一个空格之后?

# option 1
12:00 AM/PM, 12:00 AM/PM, 12:00 AM/PM
# option 2 : part 1
12:00, 12:00 ,  12:00 
# option 2: part 2
AM/PM, AM/PM, AM/PM
# then, concatenate option 2 : part 1 and option 2 : part 2

我想也许改变"gsub"的语法命令可以完成以下操作:

gsub( "$*. ", "", dob )
gsub( "*$. ", "", dob )

但是我认为我这样做是不对的。

谁能告诉我怎么做这个(选项1和[选项2第1部分,选项2第2部分])?谢谢!

注意:通常,我使用"Text to Columns"但我想学习如何在R中做到这一点!

你的意思是:

dob <- c("9/9/43 12:00 AM/PM", "9/17/88 12:00 AM/PM", "11/21/48 12:00 AM/PM", "red1 23 g")
gsub("^\S+ ", "", dob)
#> [1] "12:00 AM/PM" "12:00 AM/PM" "12:00 AM/PM" "23 g"

选项1:删除第一个空格和它之前的所有内容?

sub(".*? ", "", dob)
# "12:00 AM/PM" "12:00 AM/PM" "12:00 AM/PM"

选项2:删除最后一个空格和它之前的所有内容?

sub(".* ", "", dob)
# [1] "AM/PM" "AM/PM" "AM/PM"

选项3:删除第一个/最后一个空格和它之前/之后的所有内容?

gsub(" [^ ]+$|^.*? ", "", dob)
# [1] "12:00" "12:00" "12:00"

最新更新