【发布时间】:2018-10-02 08:41:35
【问题描述】:
我想使用 switch 语句根据字符串的前两个字符进行分支。在下面显示的示例中,我想用“aabb”或“aacc”返回“Apple”
test<-c("aabb", "aacc", "bbbb")
foo <- Vectorize(function(a) {
switch(as.character(a),
"^aa" = "Apple",
"bbbb" = "Grape",
"Unknown")
}, "a")
> foo(test)
aabb aacc bbbb
"Unknown" "Unknown" "Grape"
如果存在完全匹配,我可以使语句起作用,但我不知道如何仅使用前两个字符来获得匹配。也许有一种使用正则表达式的方法?如图所示,我尝试使用^ 来匹配字符串的开头(与grep 一起使用)但它不起作用。
我想我可以将嵌套的 ifelse 语句与 grepl 一起使用,但它可以使用 switch 吗?
【问题讨论】:
标签: r string switch-statement