Lendo apenas duas das três colunas com read.csv

12

Eu tenho um conjunto de dados ascii que consiste em três colunas, mas apenas as duas últimas são dados reais. Agora eu quero criar um pontochart dos dados usando read.csv(file = "result1", sep= " "). R lê todas as três colunas. Como evito isso?

Chris
fonte
5
Vou deixar aqui, mas faça futuras perguntas básicas sobre R no StackOverflow .
Na verdade, o consenso atual parece ser que as questões R são bem-vindas no CV. Não consigo encontrar a discussão no momento, mas está em algum lugar no meta.stats.stackexchange.com .
Waldir Leoncio
stackoverflow.com/questions/5788117/…
Ciro Santilli escreveu:

Respostas:

20

Você pode usar o colClassesargumento para read.csvpara selecionar as colunas que deseja. Nesse caso, você pode definir colClassescomoc("NULL", NA, NA)

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

De maneira mais geral, você pode usar colClasses para especificar os tipos específicos de colunas; NAsignifica usar a abordagem padrão, que é tentar descobrir qual é a coluna automaticamente. Veja a página de ajuda read.csvpara mais detalhes.

Brian Diggs
fonte
11

Outra opção é ler o arquivo inteiro, mas mantenha apenas duas das colunas, por exemplo:

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

ou, usando nomes de colunas, por exemplo. se as colunas forem nomeadas 'col1, col2, col3'

read.csv(file = "result1", sep = " ")[ ,c('col1', 'col2')]
David LeBauer
fonte
Responder por @Brian leva menos tempo em comparação com o seu.
Haroon Rashid
0

Este leva menos tempo em comparação com as respostas fornecidas

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