r - 使用 R 在空字符串之后提取值
问题描述
我设法从 3 个不同的 .txt 文件中获取这些行。我使用“grep”命令提取包含单词“沸腾”的行。但是我只想要这个值(见结果)。那么如何使用 grep 命令提取空字符串后的所有值,并将这些值仅保存在 csv/excel 文件中
[1] " Boiling: 80 - 93 °C (176°F - 199.4 °"
[1] " Boiling: > 93.3 °C (> 199.94 °F) "
[1] " Boiling: 80 - 93 °C (176° closed cup"
结果应如下所示(去掉引号):
80 - 93 °C (176°F - 199.4 °
> 93.3 °C (> 199.94 °F)
80 - 93 °C (176° closed cup
下面是我的代码
my_txt<-list.files("G:\\FlashPointTest\\Test2\\sdstotextorigin",
pattern = ".txt$",full.names = TRUE,recursive = FALSE )
lst<-vector("list",length(my_txt))
names(lst)<-my_txt
for(i in 1:length(my_txt)){
doc<-readLines(my_txt[i])
doc<-doc[grepl("Boiling",doc)]
lst[[my_txt[[i]]]]<-doc
}
非常感谢你的帮助!
解决方案
这里有很多方法:(尝试最适合您的完整数据的方法)
数据:
vec<-
c("Boiling: 80 - 93 °C (176°F - 199.4 °",
" Boiling: > 93.3 °C (> 199.94 °F) ",
" Boiling: 80 - 93 °C (176° closed cup")
library(magrittr);library(stringr);
1:
vec %>% sub("Boiling:","",.) %>% trimws
2:
vec %>% stringr::str_extract("(\\d|>).*")
3:
vec %>% stringr::str_extract("(?<=\\s{5}).*$") %>% trimws