【发布时间】:2018-06-12 14:12:25
【问题描述】:
我有一个列表,其中包含每个观察的多个字符串(见下文)。
[1] A, C, D
[2] P, O, E
[3] W, E, W
[4] S, B, W
我想测试字符串是否包含某些子字符串,如果是,则返回相应的子字符串,在此示例中,这将是“A”或“B”(请参阅下面的所需结果)。每个观察将仅包含 2 个子字符串之一 (A|B)
[1] A
[2] NA
[3] NA
[4] B
不,我已经尝试过解决它,但它似乎效率很低,而且我也没有让它工作。我该如何解决?
if (i == "A") {
type <- "A"
} else if { (i == "B")
type <- "B"
} else { type <- "NA"
}
注意:我需要循环超过 1000 个观察结果
【问题讨论】:
-
您可以使用
grepl查找包含您要查找的字母的字符串。对于每个字符串,你可以使用regexec和regmatches来返回模式(如果有的话)。
标签: r regex if-statement stringr