首页 > 解决方案 > 我想检查其对应行的每个单元格中是否存在像 ABCD 这样的字符串。如果不存在,则应返回 NA

问题描述

我已经把数据和输出放在这里了。在第一行中,如果任何内容都不是 A,B,C 或 D 则应返回 NA ,在第二行中如果任何内容都不是 A,C,B 或 E 则返回 NA

标签: r

解决方案


这是一个示例,显示了一个选项

> t(mapply(function(a, b) b[match(a, b)], asplit(x, 1), strsplit(y, "")))
     [,1] [,2] [,3] [,4]
[1,] NA   "B"  "C"  "A"
[2,] NA   "B"  "C"  NA

数据

> x <- rbind(c("E", "B", "C", "A"), c("S", "B", "C", "D"))

> y <- c("ABCD", "ACBE")

> x
     [,1] [,2] [,3] [,4]
[1,] "E"  "B"  "C"  "A"
[2,] "S"  "B"  "C"  "D"

> y
[1] "ABCD" "ACBE"

推荐阅读