Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 两个字符串数组的R语言叉积组合_Arrays_R_Combinations - Fatal编程技术网

Arrays 两个字符串数组的R语言叉积组合

Arrays 两个字符串数组的R语言叉积组合,arrays,r,combinations,Arrays,R,Combinations,假设我有两个数组a和b: a=seq(2013,2015) b=c('-03-31','-06-30') 我想把a中的每个元素与b中的每个元素结合起来。结果应该是一个如下所示的数组: "2013-03-31" "2013-06-30" "2014-03-31" "2014-06-30" "2015-03-31" "2015-06-30" 我该怎么做呢?你可以试试 c(outer(a, b, FUN=paste0)) #[1] "2013-03-31" "2014-03-31" "2015-0

假设我有两个数组a和b:

a=seq(2013,2015)
b=c('-03-31','-06-30')
我想把a中的每个元素与b中的每个元素结合起来。结果应该是一个如下所示的数组:

"2013-03-31" "2013-06-30" "2014-03-31" "2014-06-30" "2015-03-31" "2015-06-30"
我该怎么做呢?

你可以试试

c(outer(a, b, FUN=paste0))
#[1] "2013-03-31" "2014-03-31" "2015-03-31" "2013-06-30" "2014-06-30"
#[6] "2015-06-30"


如果您想要一个字符向量作为结果,那么akrun的示例可以很好地工作,但是它们不便于处理这对字符的每一侧

此函数将为您提供一个包含两个集合的叉积的列表:

cross <- function(x, y = x) {

    result <- list()

    for (a in unique(x)) {

        for (b in unique(y)) {

            result <- append(result, list(list(left = a, right = b)))
        }
    }

    result
}

我不明白为什么这个帖子被投了-3票。任何投票的人都可以解释?akrun的答案就是我要找的,谢谢akrun。例如,如果我在谷歌上搜索一个关键字“r两个向量的每一个组合”,我得到的基本上就是你所问的。在没有对why@akrun,我想你可能是对的。
sprintf('%s%s', rep(a, length(b)), rep(b, length(a)))
cross <- function(x, y = x) {

    result <- list()

    for (a in unique(x)) {

        for (b in unique(y)) {

            result <- append(result, list(list(left = a, right = b)))
        }
    }

    result
}
cross(c(1, 2, 3), c("a", "b", "c"))