ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้

นี่คือข้อผิดพลาดในการจัดสรรหน่วยความจำทั่วไป ปัญหาปกติคือ ว่า Revolution 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") 
}


ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ขยายทักษะของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Microsoft Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

คุณพึงพอใจกับคุณภาพการแปลแค่ไหน
สิ่งที่ส่งผลกระทบต่อประสบการณ์ใช้งานของคุณ

ขอบคุณสำหรับคำติชมของคุณ

×