Este é um erro de atribuição de memória geral. O problema habitual é que revolução R está a tentar ler demasiadas linhas em simultâneo a partir do ficheiro de dados para processar os dados na memória para um único segmento de dados.
Em primeiro lugar, tente o seguinte, para resolver o problema: Defina um pequeno valor para o argumento 'rowsPerRead' na instrução de rxImport(). Tente um valor igual ou inferior a '10000'. Poderá ter de experimentar definições diferentes para Esta opção para localizar um valor que funciona bem e importa os dados tão rapidamente quanto possível. Se isto não ajuda e o ficheiro csv tem uma grande quantidade de colunas, pode ajudar a importar as colunas de dados 'x' de cada vez. Por exemplo, se o conjunto de dados como 5000 colunas, poderá importar os dados de 50 colunas ao mesmo tempo e escrever os dados de 50 colunas para um novo ficheiro XDF e acrescentar a esse ficheiro XDF existente. Eis alguns códigos de exemplo R para o fazer:varNames <- readLines("mycsv.txt", n=1) colsPerRead <- 50 ## Set how many columns to read from the csv file at a time. You may want to initially set this to a larger value, say 100.
numReadsFromFile <- length(varNames/colsPerRead) for (i in 1:numReadsFromFile) { tempdf <- rxImport(inData = "C:/MyRData/data.csv", varsToKeep = paste(varNames[((i-1)*colsPerRead)+1:(((i-1)*colsPerRead)+1)+colsPerRead], sep = ","), rowsPerRead = 10000) rxDataFrameToXdf(data = tempdf, ouFile = "C:/MyRData/data.xdf", append = "cols") }