Membaca hanya dua dari tiga kolom dengan read.csv

12

Saya memiliki dataset ascii yang terdiri dari tiga kolom, tetapi hanya dua yang terakhir adalah data aktual. Sekarang saya ingin membuat dotchart data dengan menggunakan read.csv(file = "result1", sep= " "). R membaca ketiga kolom. Bagaimana saya menghindari ini?

Chris
sumber
5
Saya akan meninggalkannya di sini, tapi tolong ajukan pertanyaan dasar R di StackOverflow .
Sebenarnya, konsensus saat ini tampaknya bahwa pertanyaan R sekarang diterima di CV. Saya tidak dapat menemukan diskusi sekarang, tetapi ada di suatu tempat di meta.stats.stackexchange.com .
Waldir Leoncio
stackoverflow.com/questions/5788117/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Jawaban:

20

Anda dapat menggunakan colClassesargumen read.csvuntuk memilih kolom yang Anda inginkan. Dalam hal ini, Anda dapat mengatur colClasseskec("NULL", NA, NA)

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

Secara umum, Anda dapat menggunakan colClasses untuk menentukan jenis kolom tertentu; NAartinya menggunakan pendekatan default yang mencoba dan mencari tahu apa kolom itu secara otomatis. Lihat halaman bantuan read.csvuntuk lebih jelasnya.

Brian Diggs
sumber
11

Pilihan lain adalah membaca di seluruh file, tetapi hanya menyimpan dua kolom, misalnya:

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

atau, menggunakan nama kolom, mis. jika kolom diberi nama 'col1, col2, col3'

read.csv(file = "result1", sep = " ")[ ,c('col1', 'col2')]
David LeBauer
sumber
Jawaban oleh @Brian membutuhkan waktu lebih sedikit dibandingkan dengan milik Anda.
Haroon Rashid
0

Yang ini membutuhkan waktu lebih sedikit dibandingkan dengan jawaban yang diberikan

library(data.table)
fread(file="result1", sep=" ", colClasses=c("NULL", NA, NA))
Haroon Rashid
sumber