2014-10-09 6 views
0

Я пытаюсь преобразовать значения факторов в R в числовые. Я пробовал различные методы, но независимо от того, что я делаю, я получаю ошибку «NAs, введенные принуждением». Вот пример кода, который я запускаю, и полученную ошибку:Преобразование значений коэффициента с уровнями в числовые по r

> demand <- read.csv("file.csv") 
> demand[3,3] 
[1] 5,185 
25 Levels: 2/Jan/2011 3,370 4,339 4,465 4,549 4,676 4,767 4,844 5,055 5,139 5,185 5,265 5,350 5,434 ... dam 

> a <- demand[3,3] 
> as.numeric(as.character(a)) 
[1] NA 
Warning message: 
NAs introduced by coercion 

Как я могу получить числовые значения?

+2

У вас есть запятые в ваших номерах, у вас также есть дата. вы можете избавиться от запятых с помощью gsub, но это не поможет вашему первому значению (возможно, вы можете пропустить строку в своем файле?) – mnel

+0

Просьба дать 10 наблюдений за вашей рамкой данных и сделать ее воспроизводимым примером. – technOslerphile

ответ

2

Вы должны заменить

as.numeric(as.character(a)) 

в коде с

as.numeric(gsub("[,]", "", as.character(a))) 
0

Я получил 2 комментария здесь:

  1. Вы используете, вероятно, файлы из Восточной Европы Excel флоат нотации (» ,' вместо '.').

Чтобы сделать его работоспособным, используйте функцию read.csv2().

  1. Первым наблюдением является, вероятно, заголовок? Я думаю, что приведенные ниже наблюдения каким-то образом связаны с этой датой (2 января/2011). Я предлагаю использовать аргумент header=T.

Сведение:

Попробуйте read.csv2("file.csv", head=T)

Если по каким-либо причинам вам еще нужно изменить факторы для числовых значений, я предлагаю:

f = as.factor(1:10)

as.numeric(f[f])

Лучшие , Adii_

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

  • Нет связанных вопросов^_^