如何[R在列表中找到的第一個和第二個元素(grep的)「你好」?當在lapply
中不使用直接功能時。意外行爲用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
那是什麼造成的結果兩者之間的區別?
第一個是'grep(c('',''),'hello')''不是'grep('hello',c('',''))'這可能是你想要的認爲。 'test_list'首先被傳遞到grep,那麼第二個參數「你好」,通過兩者的位置,因爲你沒有他們的名字:'lapply(test_list,grep的,模式=「你好」)' – rawr
@rawr聽起來像答案對我來說。只是一件多麼'lapply'通過ARGS(以上acurately,grep'如何'接受參數) –
你必須愛R的功能和多麼的相似交換它們的參數順序....無盡的樂趣 – smci