【发布时间】:2020-06-23 00:33:59
【问题描述】:
我正在尝试从多列中提取独立的字母 R 或 O。通过独立,我的意思是 R 或 O (i) 由空格分隔或 (ii) 这是单元格中的唯一值。这是一个可重现的示例。假设我想从 X1 和 X2 列中提取独立的 R 或 O。
df这是想要的结果。
data.frame(X1 = c("", "R", "R"), X2 = c("R", "", ""))这是我迄今为止尝试过的。第一种方法是有问题的,因为从 AER 中提取了 R,从 EHO 中提取了 O(也没有从“Y R E”中提取 R)。
要求(字符串) sapply(df[,1:2], function(x) ifelse(df$X3 %in% NA, str_extract(x, "\\s?[O|R]$"), X3))所以我试过这个,它解决了上述问题,但现在它无法从
df[3,1]中提取R。sapply(df[,1:2], function(x) ifelse( df$X3 %in% NA, str_extract(x, "(?![A-Z]+?)\\s?[O|R] $?"), X3))我应该如何修复模式来获得这个?
【问题讨论】:
-
当问题陈述和示例(包括每个期望的结果)在作者努力解决问题之前已经完成时,问题往往更容易理解。在这里,我建议您将“这是理想的结果”...移到“这是我到目前为止所尝试的...”之前。因为你是在读者知道你想要达到的目标之前引导他们阅读你的代码。
-
@CarySwoveland:感谢您的建议。我相应地更新了 OP。