fruits <- "Apple Banana Cherry"
为了获得这个输出:
"Apple, Banana, Cherry, Apple Banana, Apple Cherry, Banana Cherry, Apple Banana Cherry"
使用这里定义的函数,稍作修改:
f1 <- function(str1){
v1 <- strsplit(str1, ' ')[[1]]
paste(unlist(sapply(seq(length(v1)), function(i)
apply(combn(v1, i), 2, paste, collapse=" "))), collapse= ', ')
}
f1(fruits)
当行数较少时,这种方法可以很好地工作。但在实际例子中,共有3350行,总共有93300个字符,其中字符串长度的中位数为25个字符,导致出现类似于此类错误:
Error in paste(unlist(sapply(seq(length(v1)), function(i) apply(combn(v1, : result would exceed 2^31-1 bytes
我尝试将函数中的utils::combn
更改为RcppAlgos::comboGeneral
,因为它显然更快速,但仍遇到了相同的问题。有没有解决这个问题的建议?