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

12

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

Крис
источник
5
Я оставлю это здесь, но, пожалуйста, задайте будущие базовые R вопросы о StackOverflow .
На самом деле, текущий консенсус, кажется, заключается в том, что R вопросы теперь приветствуются в резюме. Я не могу найти обсуждение прямо сейчас, но это где-то в meta.stats.stackexchange.com .
Вальдир Леонсио
stackoverflow.com/questions/5788117/…
Сиро Сантилли 新疆 改造 中心 法轮功 六四 事件

Ответы:

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))
Харун Рашид
источник