Chỉ đọc hai trong ba cột với read.csv


12

Tôi có một bộ dữ liệu ascii bao gồm ba cột, nhưng chỉ có hai cột cuối cùng là dữ liệu thực tế. Bây giờ tôi muốn tạo một dotchart của dữ liệu bằng cách sử dụng read.csv(file = "result1", sep= " "). R đọc cả ba cột. Làm thế nào để tôi tránh điều này?


5
Tôi sẽ để nó ở đây, nhưng vui lòng đặt câu hỏi R cơ bản trong tương lai trên StackOverflow .

Trên thực tế, sự đồng thuận hiện tại dường như là các câu hỏi R hiện đang được chào đón trong CV. Tôi không thể tìm thấy cuộc thảo luận ngay bây giờ, nhưng nó ở đâu đó trong meta.stats.stackexchange.com .
Waldir Leoncio

Câu trả lời:


20

Bạn có thể sử dụng colClassesđối số read.csvđể chọn các cột bạn muốn. Trong trường hợp này, bạn có thể đặt colClassesthànhc("NULL", NA, NA)

read.csv(file="result1", sep=" ", colClasses=c("NULL", NA, NA))

Tổng quát hơn, bạn có thể sử dụng colClass để chỉ định các loại cột cụ thể; NAcó nghĩa là sử dụng cách tiếp cận mặc định là thử và tìm ra cột nào tự động. Xem trang trợ giúp read.csvđể biết thêm chi tiết.


11

Một tùy chọn khác là đọc trong toàn bộ tệp, nhưng chỉ giữ hai trong số các cột, ví dụ:

read.csv(file = "result1", sep = " ")[ ,1:2]

hoặc, sử dụng tên cột, ví dụ. nếu các cột được đặt tên là 'col1, col2, col3'

read.csv(file = "result1", sep = " ")[ ,c('col1', 'col2')]

Trả lời bởi @Brian mất ít thời gian hơn so với của bạn.
Haroon Rashid

0

Điều này mất ít thời gian hơn so với câu trả lời được cung cấp

library(data.table)
fread(file="result1", sep=" ", colClasses=c("NULL", NA, NA))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.