Tôi có một tập tin csv đơn giản gọi là "test.csv" với các nội dung sau đây:làm thế nào để bỏ qua đọc cột nhất định trong readr
colA,colB,colC
1,"x",12
2,"y",34
3,"z",56
Hãy nói rằng tôi muốn bỏ qua việc đọc trong cola và chỉ đọc trong colB và colC. Tôi muốn một cách tổng quát để làm điều này bởi vì tôi có rất nhiều tập tin để đọc và đôi khi colA được gọi là cái gì đó hoàn toàn khác nhưng colB và colC luôn giống nhau.
Theo tài liệu read_csv, một cách để thực hiện điều này là để thông qua một danh sách tên cho col_types và chỉ tên các cột mà bạn muốn giữ:
read_csv('test.csv', col_types = list(colB = col_character(), colC = col_numeric()))
Bằng không nhắc đến Cola nó nên được giảm từ đầu ra. Tuy nhiên, khung dữ liệu kết quả là:
Source: local data frame [3 x 3]
colA colB colC
1 1 x 12
2 2 y 34
3 3 z 56
Tôi có làm gì sai hoặc tài liệu read_csv không chính xác không? Theo tệp trợ giúp:
Nếu danh sách, danh sách phải chứa một "bộ thu" cho mỗi cột. Nếu bạn chỉ muốn đọc một tập con của các cột, bạn có thể sử dụng danh sách có tên (trong đó tên đặt tên cột). Nếu một cột không được đề cập theo tên, cột đó sẽ không được đưa vào đầu ra.
'' fread' data.table' của có 'drop' và 'chọn' đối số cho mục đích này, để tham khảo – MichaelChirico
@jaap, KHÔNG trùng lặp. Câu hỏi này là về readr :: read_csv() và câu hỏi khác là về utils :: read.table(). – Angelo
@Angelo Đúng vậy. Câu hỏi được liên kết là đọc số lượng cột giới hạn. Tại thời điểm viết câu hỏi đó, 'readr :: read_csv' thậm chí không tồn tại. Trong thời gian đó, nó đã được thêm vào như một câu trả lời (bởi tôi) để đưa ra các cách tiếp cận thay thế cho 'read.table' /' read.csv' và do đó có thể phục vụ như một mục tiêu trùng lặp. – Jaap