假设我有这样的数据:
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条件,但在这种情况下,我只会得到数据中的哪种模式。
答案 0 :(得分:0)
grepl
返回一个布尔向量。
if ( grepl("^C.-a.csv$", data[[n]]) ) {
cat("Do this\n")
} else {
cat("Do that\n")
}
确切的正则表达式取决于您想要匹配的实际模式。