r - 使用 grep 对数据框进行子集化

标签 r dataframe subset

我有以下数据

Sample_ID<-c("a1_01_01","a2_03_03","a3_07_07","a4_09_09","a5_10_10","a6_21_21")
Sex<-c(M, M, F, F, M, NM)
DF1<-data.frame(Sample_ID,Sex)

我想在以下列表的基础上对 df 进行子集化。

Excluded <-c(a1_01, a3_07, a5_10)

我正在使用此代码来执行

Newdf<-subset(DF1,Sample_ID %in% Excluded)

但它不起作用,因为您可以看到 ExcludedSample_ID 并不完全相同,但它们的首字母相似。我有一个想法,我需要使用 grep 通过管道传输 R 命令,但不知道如何操作。有人可以帮助我或者是否有其他更好的简单方法。

最佳答案

你可以这样做:

DF1[!grepl(paste(Excluded, collapse = "|"), DF1$Sample_ID),]
#>   Sample_ID Sex
#> 2  a2_03_03   M
#> 4  a4_09_09   F
#> 6  a6_21_21  NM

这通过创建一个正则表达式来查找示例中的任何字符串并通过逻辑否定和子集排除它们来实现。

关于r - 使用 grep 对数据框进行子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71381065/

相关文章:

r - 根据索引列表从数据框列中提取

r - R 上三个子集的方差分析

python - 在 Python 中从一组数字创建 "slice notation"样式列表

r - 构建 R 包时出现 cygwin 警告

r - 如何将一个数据帧的列除以另一个数据帧的列

r - 有条件地将因子变量 1 的水平替换为特定变量 2

r - 遍历数据框和变量名

r - 基于子集比较两个字符

python - pandas 从数据框中提取列表

python - 在不同数据框中查找列匹配