col_types กับ collectors
อีกวิธีหนึ่งในการกำหนดประเภทของคอลัมน์ที่นำเข้าคือการใช้ collectors ฟังก์ชัน collector สามารถส่งผ่านใน list() ไปยังอาร์กิวเมนต์ col_types ของฟังก์ชัน read_ เพื่อระบุวิธีตีความค่าในแต่ละคอลัมน์
ดูรายการฟังก์ชัน collector ทั้งหมดได้ที่เอกสาร collector สำหรับแบบฝึกหัดนี้จะใช้ฟังก์ชัน collector สองตัว ได้แก่
col_integer(): ระบุให้ตีความคอลัมน์เป็นจำนวนเต็มcol_factor(levels, ordered = FALSE): ระบุให้ตีความคอลัมน์เป็น factor ที่มีlevelsที่กำหนด
ในแบบฝึกหัดนี้จะทำงานกับ hotdogs.txt (ดูไฟล์) ซึ่งเป็นไฟล์ที่คั่นด้วย tab และไม่มีชื่อคอลัมน์ในแถวแรก
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การนำเข้าข้อมูลใน R เบื้องต้น
คำแนะนำการฝึกหัด
hotdogsถูกสร้างไว้ให้แล้วโดยไม่ได้กำหนดประเภทของคอลัมน์ ตรวจสอบสรุปข้อมูลด้วยฟังก์ชันsummary()- มีการกำหนดฟังก์ชัน collector ไว้ให้สองตัวคือ
facและintลองดูโค้ดให้เข้าใจว่าแต่ละตัวเก็บข้อมูลประเภทใด - ในการเรียก
read_tsv()ครั้งที่สอง ให้แก้ไขอาร์กิวเมนต์col_typesโดยส่งlist()ที่มีสมาชิกเป็นfac,intและintเพื่อให้คอลัมน์แรกนำเข้าเป็น factor และคอลัมน์ที่สองกับสามเป็นจำนวนเต็ม - สร้าง
summary()ของhotdogs_factorแล้วเปรียบเทียบกับสรุปของhotdogs
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import without col_types
hotdogs <- read_tsv("hotdogs.txt", col_names = c("type", "calories", "sodium"))
# Display the summary of hotdogs
___
# The collectors you will need to import the data
fac <- col_factor(levels = c("Beef", "Meat", "Poultry"))
int <- col_integer()
# Edit the col_types argument to import the data correctly: hotdogs_factor
hotdogs_factor <- read_tsv("hotdogs.txt",
col_names = c("type", "calories", "sodium"),
col_types = NULL)
# Display the summary of hotdogs_factor
___