2012-04-19 8 views
1

Новое в R и проблема с очень простой задачей! Я прочитал несколько столбцов данных .csv в R, содержимое которых содержит переменные, которые находятся в натуральных числах плюс ноль, и имеют отсутствующие значения. После попытки использования непараметрического пакета у меня есть две проблемы: во-первых, если я использую простую команду bw=npregbw(ydat=y, xdat=x, na.omit), где x и y - векторы столбцов, я получаю сообщение об ошибке «Число регрессионных данных и данных ответа не соответствует», , Почему я получаю это, поскольку у меня одинаковое количество элементов в каждом векторе?Выбор полосы пропускания с использованием пакета NP

Во-вторых, я хотел бы назвать упорядоченные данные и сообщить npregbw, используя команду bw=npregbw(ydat=y, xdat=ordered(x)). Когда я это сделаю, я получаю ошибку, что x должен быть атомарным для sort.list. Но как x не является атомарным, это просто вектор с натуральными числами и NA?

Любые разъяснения были бы очень признательны!

ответ

1

1) У вас, вероятно, есть другое количество NA в y и x.

2) Не может быть уверен в этом, так как нет примера. Если это имеет следующий тип:

x <- c(3,4,NA,2) 

Тогда ordered(x) должно работать нормально. Просьба привести пример вашего дела.

EDIT: Вы, конечно же, пробовали bw=npregbw(ydat=y, xdat=x)? ordered() делает ваш вектор упорядоченного фактор (см ?ordered), который не является атомарным вектором (см 2.1.1 link и ?factor)

edit2: Таким образом, проблема заключается в способе данных Подменят. Обратите внимание на разницу в различных способах подмножества. данные $ x и data [, i] (где i = номер столбца столбца x) дают вам векторы, а данные [c («x»)] и данные [i] предоставляют кадр данных. Функции ожидают векторы, если они не требуют данных = (ваши данные). В этом случае они работают с именами столбцов

+0

1) Я пробовал несколько диагностических тестов. Я очистил все NA от своих данных, а затем попробовал npregbw, используя векторы x и y, которые имеют суммарную длину: 6903, class: -none-, mode: numeric. Я все еще получаю ошибку, что число регрессионных данных не соответствует данным ответа. Во-вторых, я создал два небольших простых вектора для использования npregbw, в которые входят NA, и он отлично работает. 2) Я также попытался упорядочить эти сгенерированные векторы, как вы описали выше, и это также отлично работает. Я думаю, это проблема с данными? Проблема в том, что я не вижу разницы между созданными векторами и моими фактическими данными. – kirk

+0

Это странно. Это должно быть что-то с классом или подмножеством ваших векторов. Каким образом вы подмножали свои векторы? данные $ х? Вы также можете попробовать числовую (y) упорядоченную (x) комбинацию (в случае, если проблема связана с классами). Еще одна вещь, которую я хотел бы попробовать, будет npregbw (y ~ ordered (x)) – Mikko

+0

Ну, это исправление. Благодарю. Подстановка с данными $ x сделала трюк. Решила и ошибку с данными разной длины, а также позволила мне вызвать упорядоченное(). – kirk

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