Чтение только двух столбцов из трех с помощью read.csv


12

У меня есть набор данных ascii, который состоит из трех столбцов, но только последние два являются фактическими данными. Теперь я хочу создать точечную диаграмму данных с помощью read.csv(file = "result1", sep= " "). R читает все три столбца. Как мне избежать этого?


5
Я оставлю это здесь, но, пожалуйста, задайте будущие базовые R вопросы о StackOverflow .

На самом деле, текущий консенсус, кажется, заключается в том, что R вопросы теперь приветствуются в резюме. Я не могу найти обсуждение прямо сейчас, но это где-то в meta.stats.stackexchange.com .
Вальдир Леонсио

Ответы:


20

Вы можете использовать colClassesаргумент, read.csvчтобы выбрать нужные столбцы. В этом случае, вы можете установить colClassesвc("NULL", NA, NA)

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

В более общем смысле вы можете использовать colClasses для указания определенных типов столбцов; NAозначает использовать подход по умолчанию, который заключается в том, чтобы попытаться выяснить, что такое столбец автоматически. Смотрите страницу помощи read.csvдля более подробной информации.


11

Другой вариант - прочитать весь файл, но оставить только два столбца, например:

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

или, используя имена столбцов, например. если столбцы названы «col1, col2, col3»

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

Ответ @Brian занимает меньше времени по сравнению с вашим.
Харун Рашид

0

Этот занимает меньше времени по сравнению с предоставленными ответами

library(data.table)
fread(file="result1", sep=" ", colClasses=c("NULL", NA, NA))
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.