提取第一个和第二个空格之间的字符串
Extract String Between First and Second Whitespace
我正在尝试提取列中文本的特定部分 - 我只想要第一个和第二个空格之间的文本 - 在本例中为制造年份。该字段位于数据框“数据”的“详细信息”列中。这是一致的结构:
二手 2014 丰田凯美瑞
我只对捕获此字段中的“2014”感兴趣:
这是我试过的方法:
sub(".*?\s+(.*)\s.*", "\1", "Used 2014 Toyota Camry", perl=TRUE)
非常感谢您的帮助。
你已经很接近了,你也需要限制你的捕获组。
sub(".*?\s+(.*?)\s.*", "\1", "Used 2014 Toyota Camry")
#[1] "2014"
如果那只是第一和第二个白色space,也可以使用这个解决方案:
strsplit("Used 2014 Toyota Camry", " ")[[1]][2]
[1] "2014"
我们可以做到
readr::parse_number(str1)
[1] 2014
或在base R
trimws(str1, whitespace = "\D+")
[1] "2014"
数据
str1 <- "Used 2014 Toyota Camry"
我正在尝试提取列中文本的特定部分 - 我只想要第一个和第二个空格之间的文本 - 在本例中为制造年份。该字段位于数据框“数据”的“详细信息”列中。这是一致的结构:
二手 2014 丰田凯美瑞
我只对捕获此字段中的“2014”感兴趣:
这是我试过的方法:
sub(".*?\s+(.*)\s.*", "\1", "Used 2014 Toyota Camry", perl=TRUE)
非常感谢您的帮助。
你已经很接近了,你也需要限制你的捕获组。
sub(".*?\s+(.*?)\s.*", "\1", "Used 2014 Toyota Camry")
#[1] "2014"
如果那只是第一和第二个白色space,也可以使用这个解决方案:
strsplit("Used 2014 Toyota Camry", " ")[[1]][2]
[1] "2014"
我们可以做到
readr::parse_number(str1)
[1] 2014
或在base R
trimws(str1, whitespace = "\D+")
[1] "2014"
数据
str1 <- "Used 2014 Toyota Camry"