2016-11-04 2 views
-1

У меня есть большой CSV-файл, содержащий более 80000 записей в таблице сопряженности и ниже первая запись:Ошибка в R pnorm - «Non-числовой аргумент математической функции»

test = data.frame(a=1, b=0, c=1, d=2014, R1=1, R2=2015, C1=2, C2=2014, 
       n=2016, sampleMean=2015, popMean=2, sdErr=2015, tScore=0.999049881) 

Учитывая, что

z = p_cap - p/sqrt(p*(1-p)/n) ie the observed mean minus the population mean over the standard error.

test.stat = test$a/test$n - test$popMean/sqrt(test$sdErr) который оценивает -0.04405856. Использование функции pnorm для расчета pValue:

pValue = pnorm(test.stat, mean=test$sampleMean, sd=test$sdErr, lower.tail=TRUE). Но я получаю следующее сообщение об ошибке:

Non-numeric argument to mathematical function

При выполнении команды на следующих соображениях, нет никакой ошибки:

pValue = pnorm(test.stat, mean=0, sd=1, lower.tail=TRUE) 
pValue 
[1] 0.4824289 

Что это означает, что ошибка и как ее избежать?

Чтобы не задавать другой вопрос с одинаковыми данными, у меня есть сомнения относительно стандартной ошибки. Это то же самое, что и стандартное отклонение? В моей справочной системе стандартная ошибка рассчитывается как test$a * sqrt(test$n)

Благодарим вас за помощь!

+0

@ilanman Спасибо за редактирование. – Mohammed

+0

Лучше задать два вопроса, если у вас есть два вопроса. –

+0

@JeremyMiles Я думал, что будет лишним повторять одни и те же данные. Поскольку второй вопрос сильно связан с контекстом первого вопроса, я думал, что это нормально. Еще раз спасибо. – Mohammed

ответ

1

Вы писали:

sd=test$sdError 

Вы должны поставили:

sd=test$sdErr 
+0

спасибо, что указал на ошибку. Я исправился. – Mohammed

+0

Если вы исправите вопрос, ответ не имеет смысла. –

+0

Почему? Не могли бы вы прояснить больше. – Mohammed

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