Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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/0/windows/15.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
R:为字符串预先分配内存_R_String_Performance_Memory Management - Fatal编程技术网

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
参数…?太好了!这将是一个我没有想到的简单解决方案。我想你可以从你的评论中得出答案