Αυτό είναι ένα σφάλμα εκχώρησης μνήμης Γενικά. Το συνηθισμένο πρόβλημα είναι ότι R επανάσταση προσπαθεί να διαβάσει πάρα πολλές γραμμές ταυτόχρονα από το αρχείο δεδομένων για την επεξεργασία των δεδομένων στη μνήμη για ένα μεμονωμένο τμήμα των δεδομένων.
Πρώτα, δοκιμάστε τα παρακάτω, για να επιλύσετε αυτό το ζήτημα:
Ορίστε μια μικρή τιμή για το όρισμα 'rowsPerRead' στην εντολή rxImport(). Δοκιμάστε μια τιμή '10000' ή λιγότερο. Ίσως χρειαστεί να δοκιμάσετε διαφορετικές ρυθμίσεις για
Εδώ, για να βρείτε μια τιμή που λειτουργεί καλά και εισάγει τα δεδομένα όσο το δυνατό συντομότερα.
Εάν αυτό δεν σας βοηθήσει και το αρχείο csv έχει πολλές στήλες, μπορεί να σας βοηθήσει να εισαγάγετε τις στήλες δεδομένων 'x' κάθε φορά. Για παράδειγμα, εάν το σύνολο δεδομένων ως 5000 στήλες, μπορείτε να εισαγάγετε τα δεδομένα για τις 50 στήλες ταυτόχρονα και να εγγράψει τα δεδομένα για τις 50 στήλες σε ένα νέο αρχείο XDF και Προσάρτηση στο υπάρχον αρχείο XDF.
Εδώ είναι ορισμένα δείγματα R κώδικα για να γίνει αυτό:
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")
}