gpt4 book ai didi

r - 在两个不同长度的向量上应用函数,并在 R 中返回一个矩阵

转载 作者:行者123 更新时间:2023-12-04 15:31:51 26 4
gpt4 key购买 nike

我有两个不同长度的向量,我想对这两个向量的每个可能组合应用一个函数,从而得到一个矩阵。

在我的特定示例中,两个向量是字符向量,我想应用函数 grepl , IE:

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

现在我正在使用 for loops但我相信有更好、更有效的方法。我对 apply functions做了很多研究,以及 aggregate , by , sweep等,但还没有找到我要找的东西。

谢谢您的帮助。

最佳答案

尝试这个

library(stringr)
t(sapply(names,str_detect,pattern=slices))

您也可以使用 grepl 在基础 R 中执行此操作
sapply(slices, grepl, names)

关于r - 在两个不同长度的向量上应用函数,并在 R 中返回一个矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38935146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com