【发布时间】:2016-05-03 11:37:12
【问题描述】:
我想检查列表中的所有元素是否具有我需要的模式,否则我将停止整个脚本。
示例列表如下所示:
[1]
Archaea;Euryarchaeota;Methanobacteria;Methanobacteriales;Methanobacteriaceae;Methanobrevibacter;
[2]
Archaea;Euryarchaeota;Methanobacteria;Methanobacteriales;Methanobacteriaceae;Methanosphaera;
[3]
Archaea;Euryarchaeota;Methanobacteria;Methanobacteriales;Methanobacteriaceae;Methanosphaera;
[4]
Bacteria;Actinobacteria;Actinobacteria;Bifidobacteriales;Bifidobacteriaceae;Bifidobacterium;
[5]
Bacteria;Actinobacteria;Actinobacteria;Bifidobacteriales;Bifidobacteriaceae;Bifidobacterium;
[6]
Bacteria;Actinobacteria;Actinobacteria;Bifidobacteriales;Bifidobacteriaceae;Bifidobacterium;
[7]
Bacteria;Actinobacteria;Actinobacteria;Coriobacteriales;Coriobacteriaceae;Gordonibacter;
[8]
Bacteria;Actinobacteria;Coriobacteriia;Coriobacteriales;Coriobacteriaceae;;
[9]
Bacteria;Actinobacteria;Coriobacteriia;Coriobacteriales;Coriobacteriaceae;;
希望所有条目都恰好有六个分号。 我尝试使用 grepl 进行模式匹配,但我在使用正确的模式时遇到了麻烦。 这是我尝试过的
if(!any(grepl(";{6}", taxonomy))) { Through error message if the
taxonomy is not in the right format stop("Wrong number of taxonomic
classes\n Taxonomic levels have to be separated by semicolons (six in
total). IMPORTANT: if taxonomic information at any level is missing,
the semicolons are still needed:\n
e.g.Bacteria;Bacteroidetes;Bacteroidia;Bacteroidales;Prevotellaceae;Prevotella;
e.g.Bacteria;Bacteroidetes;Bacteroidia;Bacteroidales;Prevotellaceae;;")
} else {
但我总是得到 FALSE。
【问题讨论】:
-
从
stringr包看str_count