0

假设我有这样的数据:

data <- as.list(c("Cb-a.csv", "Cc-a.csv", "Cd-a.csv", "Ca-e.csv"))

其中 C 是常数部分,实际情况下的字母是字母和 2 个数字的模式。我想做不同的事情,这取决于

喜欢:

for (n in 1:length(data)){
 if ( data[[n]] == <condition> ){
  cat("Do this with 'Cb-a.csv', 'Cc-a.csv', 'Cd-a.csv'\n")}
  else{
   cat("Do this with 'Ca-e.csv'\n")}
}

哪个应该是我的<condition>?它必须区分数据输入的顺序或模式。(读取 'Ca-e.csv' 和 'Ce-a.csv' 之间的差异)。

在某种程度上,它必须重新创建数据,但要使用“正确的模式”来查看它是否适合。(但不是手动)

起初我考虑了一个 grep 条件,但在这种情况下,我只会得到数据中的哪个模式。

4

1 回答 1

0

grepl返回一个布尔向量。

if ( grepl("^C.-a.csv$", data[[n]]) ) {
  cat("Do this\n")
} else {
  cat("Do that\n")
}

确切的正则表达式取决于您要匹配的真实模式。

于 2013-10-29T17:04:55.767 回答