R如何找到(grep)"你好"在列表的第一和第二个元素?不在lapply
中使用直接功能时。
test_list <- list(c("",""),"",c("hello","goodbye"),c("hello"))
lapply(test_list,grep,"hello")
[[1]]
[1] 1
[[2]]
[1] 1
[[3]]
[1] 1
[[4]]
[1] 1
使用函数表示法键入它似乎返回了人们期望的内容:
lapply(test_list, function(x) grep("hello",x))
[[1]]
integer(0)
[[2]]
integer(0)
[[3]]
[1] 1
[[4]]
[1] 1
创造结果的两者之间有什么区别?
答案 0 :(得分:2)
请记住:
grep
期望它的第一个参数是要搜索的字符串(不是要在其中搜索的字符串)。lapply
传递vector / list的每个元素进行迭代,作为所提供函数的第一个参数。