2010-08-16 3 views
2

Можно создать дубликат:
How can I declare a thousand separator in read.csv?Манипулирование значения запятыми

Я на самом деле есть решение этой проблемы, но мне интересно, если есть лучший способ сделать то, что я пытался делать.

я Царапина некоторых данных из majorleaguesoccer.com и прочитать его в R, используя

mls.reg.tmp <- read.table("../data/mls_reg_season_20100812.csv", 
          header = F, sep = ";") 

Обратите внимание, что я использовал сен = «;» потому что некоторые из посещаемости, где в тысячах на веб-сайтах, и я Царапины «как есть», например,

> str(mls.reg.dat$a_tot) 
Factor w/ 164 levels " 166,060"," 171,282",..: 132 45 159 153 46 160 
158 148 150 98 ... 

В ретроспективе, я только что удалил запятые в питона в предварительной обработки этапа этот проект. Я также должен указать, что в наборе данных также есть текстовые поля.

> str(mls.reg.dat$team) 
Factor w/ 20 levels "Chicago Fire",..: 4 9 19 11 3 10 13 16 5 6 ... 

Учитывая, что я хочу использовать данные о посещаемости как числовое значение, я преобразовал с помощью as.numeric и GSUB. В качестве примера в вызове ggplot:

ggplot(data = mls.reg.dat, aes(x = as.numeric(gsub(",", "", 
    mls.reg.dat$a_tot)), y = sog)) + geom_point() + 
    facet_wrap(~ team) 

Вопрос: Является ли это самый эффективный способ работы с данными, такие как это? Или есть специализированная функция для выполнения чего-то в этом направлении?

Я задаю вопрос здесь, потому что я потратил немало времени (> 30 минут), просто работая в этом простом решении, и думал, что другие могут воспользоваться этим.

ответ

1

Я не знаю какой-либо специализированной функции, но вы можете сделать это напрямую, когда будете читать данные.

data <- read.table(...) 
    data$someColumn <- as.numeric(gsub(",", "", data$someColumn)) 

Любой последующий вызов может быть сделано с помощью data$someColumn, без необходимости дальнейшего преобразования (и проще для чтения кода)

EDIT: кажется, дубликат "How can I declare a thousand separator in read.csv?"

+0

Спасибо; Я не видел этого поста. – rtelmore

Смежные вопросы