我注意到一个问题或疑虑startsWith()
功能。
以下代码显示两个不同的选择。
第一个行为正常,是这样的代码块:
dt_test <- data.table(a = c("abcd", "poo", "abla", "ba"),
id = c(1,2,3, 4))
dt_test[startsWith(a, c("ab", "ao")),id]
# [1] 1 3
startsWith(dt_test$a, c("ab", "ao"))
# TRUE FALSE TRUE FALSE
如果您注意到,这个只选择第一个,这是违反直觉的,因为id
2和4应该是TRUE
dt_test <- data.table(a = c("ab","abcd", "poo", "abla", "ba"),
id = c(1,2,3, 4,5))
dt_test[startsWith(a, c("ab", "ao")),id]
# [1] 1
startsWith(dt_test$a, c("ab", "ao"))
# [1] TRUE FALSE FALSE FALSE FALSE
我应该用什么来代替startsWith()
在这种情况下?