R:为字符串预先分配内存
我将非常长的字符串迭代地连接在一起R:为字符串预先分配内存,r,string,performance,memory-management,R,String,Performance,Memory Management,我将非常长的字符串迭代地连接在一起 s = "" for (i in 1:10^4) { ############################ ## Construct 'LongString' ## ############################ s = paste0(s,LongString) } 这个过程非常慢,因为每次调用paste0函数时,R都会重新分配内存。有没有办法预先分配s的内存,然后只填充对象?一个简单的选项: s <- char
s = ""
for (i in 1:10^4)
{
############################
## Construct 'LongString' ##
############################
s = paste0(s,LongString)
}
这个过程非常慢,因为每次调用paste0
函数时,R都会重新分配内存。有没有办法预先分配s
的内存,然后只填充对象?一个简单的选项:
s <- character(10^4)
for (i in 1:10^4){
s[i] <- <build some string>
}
result <- paste(s,collapse = "")
s用所有片段填充字符(10^4)
,然后使用一个paste()
调用collapse
参数…?太好了!这将是一个我没有想到的简单解决方案。我想你可以从你的评论中得出答案