这里有一些有用的答案,关于在每个观察只有一个标记实例时使用rm_between。但是我有一个数据集,我想在“”中提取东西,而一些观察有多个实例。例如:
新鲜或冷藏的大西洋鲑鱼“Salmo salar”和多瑙河鲑鱼“Hucho hucho”
当我使用此代码时,
library(qdapRegex)
rf <- data.frame(rm_between_multiple(H2$SE_DESC_EN, c("\"", "\""), c("\"", "\"")))
它创建了一个数据框,并为之前的同一行创建了
"Fresh or chilled Atlantic salmon and Danube salmon"
返回是完美的。但是,我需要缺少数据。要尝试保留它,我会稍微更改我的代码:
H3 <- rm_between_multiple(H2$SE_DESC_EN, c("\"", "\""), c("\"", "\""), extract=TRUE)
使用引号中的数据创建列表。返回的同一行是:
c("Salmo salar", " and Danube salmon ", "Hucho hucho",
"Salmo salar", " and Danube salmon ", "Hucho hucho")
其中包含报价中的数据,但在报价之间也有一些信息,并且正在重复。我在编程方面相当新,并且想知道是否有办法编写不包含这些引用之间信息的代码。
答案 0 :(得分:0)
我认为您不需要rm_between
x <- 'Fresh or chilled Atlantic salmon "Salmo salar" and Danube salmon "Hucho hucho"'
rm_default(
x,
pattern = S("@rm_between", '"'),
extract=TRUE
)
## [[1]]
## [1] "\"Salmo salar\"" "\"Hucho hucho\""
。使用相同的左右标记I'm not sure if this is a bug yet似乎也存在正则表达式问题。现在您可以使用以下内容提取
rm_between
修改我认为这是因为"(?<=\").*?(?=\")"
的默认正则表达式不包括左/右边界。这使用以下正则表达式" and Danube salmon "
。前瞻的使用导致左/右边界不被消耗,因此允许引号可用于:rm_between
。这是(IMO)我将解决的一个错误,但我不确定如何。
编辑2 我将@ hwnd的回复纳入if (!require("pacman")) install.packages("pacman"); library(pacman)
p_install_gh("trinker/qdapRegex"); p_load(qdapRegex)
。 qdapRegex 的开发版本。您可以通过以下方式安装开发版本:
rm_between(x, '"', '"', extract = TRUE)
## [[1]]
## [1] "Salmo salar" "Hucho hucho"
和......
enquire.register("screen and (max-width: 48rem)", {
// REQUIRED
// Triggered when the media query transitions
// from *unmatched* to *matched*
match : function() {
Headroom.options = {
offset : 0, };
},
// OPTIONAL
// Triggered when the media query transitions
// from a *matched* to *unmatched*
unmatch : function() {
Headroom.options = {
offset : 137, };
},
// OPTIONAL
// Triggered once immediately upon registration of handler
setup : function() {
},
// OPTIONAL
// Defaults to false
// If true, defers execution of the setup function
// until the first media query is matched (still just once)
deferSetup : true
});