以下是一个示例和解决方案,用于删除x <- "yyy XXX i.e.\r\n \r\n \r\n \r\n \r\n INFO: 12235041 \r\n \r\n \r\n"
do.call(rbind, lapply(1:length(x), function(i) strsplit(gsub('[\n\r]',' ',x)," ")[[i]][1]))
并仅提取名称后的名称和短符号,例如或者f.s.g.等。
这个示例和解决方案对我有用,但速度很慢。我有这样的数十万行。
toString
答案 0 :(得分:1)
我们可以使用sub
sub("\r\n.*", "", x)
#[1] "yyy XXX i.e."
答案 1 :(得分:1)
如果您不想使用正则表达式,请使用\r\n
固定字符串拆分并获取第一个元素:
x <- "yyy XXX i.e.\r\n \r\n \r\n \r\n \r\n INFO: 12235041 \r\n \r\n \r\n"
strsplit(x, "\r\n", fixed=TRUE)[[1]][1]
请参阅R demo
如果您的数据中的换行符样式不一致,则可以使用正则表达式替换
sub("[\r\n].*", "",x)
其中[\r\n]
与\r
或\n
匹配,然后.*
匹配任何0+字符,此匹配将与sub
一起删除。使用regmatches
和^[^\r\n]+
正则表达式可以实现相同的效果,该正则表达式在字符串的开头处与CR和LF之外的1 +个字符匹配:
unlist(regmatches(x, regexpr("^[^\r\n]+", x)))