我想過濾資料框(包含單詞)的行以僅保留由某些字母組成的單詞。例如,假設我有一個資料框,例如:
library(tidyverse)
df <- data.frame(words = c("acerbe", "malus", "as", "clade", "after", "sel", "moineau") )
words
1 acerbe
2 malus
3 as
4 clade
5 after
6 sel
7 moineau
我只想保留由以下字母(并且只有它們)組成的行(單詞):
letters <- c("a", "z", "e", "r", "q", "s", "d", "f", "w", "x", "c")
換句話說,我想排除包含上面列出的字母以外的其他字母的單詞。
我曾嘗試使用 string::str_detect(),但到目前為止沒有成功......
letters <- "a|z|e|r|q|s|d|f|w|x|c"
df <- data.frame(words = c("acerbe", "malus", "as", "clade", "after", "sel", "moineau") )
df %>% filter(str_detect(string = words, pattern = letters, negate = FALSE) )
words
1 acerbe
2 malus
3 as
4 clade
5 after
6 sel
7 moineau
uj5u.com熱心網友回復:
我會grepl在這里使用一種方法:
letters <- c("a", "z", "e", "r", "q", "s", "d", "f", "w", "x", "c")
regex <- paste0("^[", paste(letters, collapse=""), "] $")
df$words[grepl(regex, df$words)]
[1] "as"
請注意,此處使用的正則運算式模式grepl是:
^[azerqsdfwxc] $
在您的輸入資料框中僅包含這些字母的唯一單詞恰好是as.
uj5u.com熱心網友回復:
dplyr 方法:
df %>%
rowwise() %>%
filter(sum(str_count(words, letters))==nchar(words))
# A tibble: 1 x 1
# Rowwise:
words
<chr>
1 as
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/336999.html
