向量列表中的grepl和子集?
我从下面的代码生成了一个列表向量列表中的grepl和子集?,r,grepl,R,Grepl,我从下面的代码生成了一个列表 df <- USArrests df <- na.omit(df) df <- scale(df) d <- dist(df, method = "euclidean") # Hierarchical clustering using Complete Linkage hc1 <- hclust(d, method = "complete" ) library(dendextend) dend15 <- d %>% hc
df <- USArrests
df <- na.omit(df)
df <- scale(df)
d <- dist(df, method = "euclidean")
# Hierarchical clustering using Complete Linkage
hc1 <- hclust(d, method = "complete" )
library(dendextend)
dend15 <- d %>% hclust(method = "average") %>% as.dendrogram
dend15 %>% plot
subtrees <- partition_leaves(dend15)
lappy
浏览列表并使用grep
lapply(subtrees, grep, pattern = "Maine", value = TRUE)
您可能希望从中删除空列表,这可以使用Filter
Filter(function(x) length(x) > 0, lapply(subtrees, grep, pattern = "Maine", value = TRUE))
#[[1]]
#[1] "Maine"
#[[2]]
#[1] "Maine"
#[[3]]
#[1] "Maine"
#[[4]]
#[1] "Maine"
#[[5]]
#[1] "Maine"
#[[6]]
#[1] "Maine"
tidyverse
方法可能是
purrr::map(subtrees, ~stringr::str_subset(.x, "Maine"))
要获得匹配列表的索引,我们可以使用
grepl
和which
which(sapply(subtrees, function(x) any(grepl("Maine", x))))
#[1] 1 2 3 4 6 7
谢谢有没有办法返回匹配的索引号?我最终想做的是提取所有包含关键字Maine的值。@Ahdee你是说
哪个(sappy(子树,函数(x)any(grepl(“Maine”,x)))
?
which(sapply(subtrees, function(x) any(grepl("Maine", x))))
#[1] 1 2 3 4 6 7