Il s’agit d’une erreur d’allocation de mémoire général. Le problème habituel est que révolution R tente de lire le trop grand nombre de lignes à la fois à partir de votre fichier de données pour traiter les données en mémoire pour un segment de données unique.
Tout d’abord, essayez ce qui suit, pour résoudre le problème :
Définissez une petite valeur de l’argument 'rowsPerRead' dans l’instruction rxImport(). Essayez une valeur inférieure ou égale à '10000'. Vous devrez peut-être essayer différents paramètres pour
Cette option pour rechercher une valeur qui fonctionne bien et importe les données aussi rapidement que possible.
Si cela ne vous aide pas et votre fichier csv possède un grand nombre de colonnes, il peut vous aider à importer les colonnes de données « x » à la fois. Par exemple, si votre groupe de données en tant que colonnes de 5000, vous souhaiterez peut-être importer les données de 50 colonnes à la fois et d’écrire les données pour les 50 colonnes dans un nouveau fichier XDF et d’ajouter à ce fichier XDF existant.
Voici un exemple R de code pour ce faire :
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")
}