gpt4 book ai didi

r - 如何从 R 中另一个向量的值中提取数据集的行

转载 作者:搜寻专家 更新时间:2023-10-30 22:10:35 25 4
gpt4 key购买 nike

我有这样一个数据框

n <- c("abc;xml", "abc;derm;sip", "xol;exp", "ban;lopic", "LPLL2", "LPLL")
fac <- sample(n, 6, replace = F)
d <- data.frame(x = 1:6, fac = fac)
d

x fac
1 1 abc;xml
2 2 ban;lopic
3 3 xol;exp
4 4 abc;derm;sip
5 5 LPLL
6 6 LPLL2

和这样的向量:

vec=c("abc", "xml","sip", "exp", "lopic", "LPLL")

我想对与向量中的值具有相似匹配的行进行子集化。

我试过这段代码:

nam="abc|xml|sip|exp|lopic|LPLL"
subset(d, regexpr(nam, d$fac) > 0)

但它不能正常工作,因为包含和 LPLL2!

最佳答案

问题是您的正则表达式会找到任何匹配项,即使它不精确。这将起作用:

index <- sapply(strsplit(as.character(d$fac), split = ";"), function(x) any(x%in% vec))
d[index, ]
x fac
1 1 xol;exp
2 2 abc;xml
3 3 ban;lopic
5 5 LPLL
6 6 abc;derm;sip

关于r - 如何从 R 中另一个向量的值中提取数据集的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30926045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com