R收集类似的文件

时间:2015-03-19 05:44:07

标签: r

我有一个大的data.frame值,这些值被分类到类似命名的组中:例如001G,002G,003G等。表中还有其他项目,但名称遵循类似约定但不同的字母。例如001R,002R,003R。我想要做的是选择以R结尾的所有文件以及以G结尾的所有文件。我试过[[“*** G”]]和[[“??? G”]]来徒劳无功。任何提示?

3 个答案:

答案 0 :(得分:1)

以下是一些听起来与您描述的相似的数据:

set.seed(1)
fn <- paste(1:10, sample(c("R", "G", "S"), 10, replace = TRUE), sep = "") 
df <- data.frame(file = fn, x = 1:10)

给出:

   file  x
1    1R  1
2    2G  2
3    3G  3
4    4S  4
5    5R  5
6    6S  6
7    7S  7
8    8G  8
9    9G  9
10  10R 10

要仅选择以R或G结尾的那些,请执行以下操作:

keep <- grep("G|R", df$file)
df <- df[keep,]

有关选择过程的详细信息,请参阅?grep,您可以在较高程度上进行控制。结果是:

   file  x
1    1R  1
2    2G  2
3    3G  3
5    5R  5
8    8G  8
9    9G  9
10  10R 10

答案 1 :(得分:1)

尝试file_names <- dir()[grep('R$', dir())]

grep()中的第一个参数更改为'G$'将抓取名称以'G'结尾的文件

如果他们有后缀,请尝试'R[.]csv$'

答案 2 :(得分:1)

我在这里使用grep功能 -
取样数据 -

> x<-c("001G", "002G", "003G","001R", "002R", "003R")
> a <- x[grep("G", x)]
> a
[1] "001G" "002G" "003G"
> b <- x[grep("R", x)]
> b
[1] "001R" "002R" "003R"

我不确定这是否是最有效的方法。但是,我相信它在某种程度上符合目的。