2015-01-23 13 views
0

Я пытаюсь подготовить данные для кластерного анализа. Вот почему я подготовил таблицы данных в excel, а заголовки - «id», «name», «crime_type», «crime_date», «gender», «age» Затем я конвертирую excel в формат .csv. Затем я пишу следующую команду ->Как читать данные от excel в r?

>crime <- read.csv("crime_data.csv",header=T) 
>crime # I print , and it prints 

# now I will do cluster with kmeans() 

>kmeans.result <- kmeans(crime,3) 

Но это показывает ошибку. Ошибка следующая: Ошибка в do_one (nmeth): NA/NaN/Inf в вызове внешней функции (arg 1) Кроме того: Предупреждающее сообщение: В км. (Преступление, 3): НС, введенные принуждением «

Что я делаю неправильно здесь ...

+0

не воспроизводимый ... пожалуйста, по крайней мере, добавьте результаты 'str (crime)' на ваш вопрос ... ??? –

ответ

0

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

install.packages(xlsx) 
library(xlsx) 
yourdata <- read.xlsx("YOURDATASHEET.xlsx", sheetName="THESHEETNAME") 
+0

Должны ли мои значения быть числовыми для kmeans()? ну, я прочитал файл с «read.csv» после создания csv. –

+0

да, но вы можете закодировать номинальные данные для работы ... Мне сложно понять, что вы делаете, но похоже, что вы слишком много загружаете информацию в kmeans (например, ids). Мне нужно будет увидеть данные, которые помогут вам больше – ghonke

0

Похоже, вы задаете два вопроса. Во-первых; Вы также можете попробовать чтение непосредственно из буфера обмена (остерегайтесь больших таблиц жестких, но до сих пор у меня есть хорошие результаты с 40k строк, 30 COL)

d1<-read.table(file="clipboard",sep="\t",header=FALSE,stringsAsFactors=FALSE) 

набора заголовками в TRUE, если вы хотите, чтобы назвать столбцы. Вы также можете использовать то, что было предложено выше, чтобы открыть листы Excel, но это может оказаться неприемлемым, если у вас есть нестандартные таблицы.

Для второй части возможно, вам следует преобразовать в числовое значение с помощью функции sapply и/suppressWarnings().

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