Ama*_*one 6 string r vector matrix apply
我有两个不同长度的向量,我想将一个函数应用于两个向量的每个可能组合,从而产生一个矩阵.
在我的特定示例中,两个向量是charactor向量,我想应用该函数grepl,即:
names <- c('cats', 'dogs', 'frogs', 'bats')
slices <- c('ca', 'at', 'ts', 'do', 'og', 'gs', 'fr', 'ro', 'ba')
results <- someFunction(grepl, names, slices)
results
ca at ts do og gs fr ro ba
cats TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
dogs FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE FALSE
frogs FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE
bats FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE TRUE
Run Code Online (Sandbox Code Playgroud)
现在我正在使用,for loops但我相信有更好,更有效的方式.我已经做了很多的研究apply functions,以及aggregate,by,sweep,等,但没有发现什么,我期待的.
谢谢您的帮助.
尝试这个
library(stringr)
t(sapply(names,str_detect,pattern=slices))
Run Code Online (Sandbox Code Playgroud)
您还可以在基本 R 中使用以下命令执行此操作grepl
sapply(slices, grepl, names)
Run Code Online (Sandbox Code Playgroud)