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?


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

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.


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')]

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))
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.