2015-03-06 1 views
0

Я использую pbinom в R, чтобы определить р-значения для нескольких значений результатов и вероятности успеха:хранения выход pbinom (с несколькими вероятностей успеха) в R

1 - pbinom(1:2, 21, c(0.02, 0.05)) 

1:2 представляет число наблюдаемых подсчет, 21 представляет собой размер выборки, и 0.02 и 0.05 представляют вероятность успеха. Тем не менее, выход выше команды:

[1] 0.06534884 0.08491751 

Эти значения представляют вероятности:

1 - pbinom(1, 21, 0.02) & 1 - pbinom(2, 21, 0.05) 

соответственно.

Я хотел бы получить выходы: 1 - pbinom(1:2, 21, 0.02) и 1 - pbinom(1:2, 21, 0.05) таким образом, что я получаю вывод:

[1] 0.065348840 0.008125299 ## pvalues for 1 - pbinom(1:2, 21, 0.02) 
[1] 0.28302816 0.08491751 ## pvalues for 1 - pbinom(1:2, 21, 0.05) 

Мой фактический набор данных очень длинный, поэтому я не могу ввести код для каждого вероятности успеха ,

Я также попытался это с помощью цикл:

output=c() 
for (i in 1:2) { 
output[i]=(1 - pbinom(i, 21, c(0.02, 0.05))) 
} 

Но я получаю следующее предупреждение:

1: В выходе [I] = (1 - pbinom (I, 21 , c (0,02, 0,05)):
Количество элементов для замены не кратно замещающей длины
2: На выходе [i] = (1 - pbinom (i, 21, c (0,02, 0,05))):
Количество элементов для замены не является множителем e сменной длины

Я понимаю, что этот вопрос может быть трудно интерпретировать, но любая помощь будет принята с благодарностью. Спасибо.

+1

Вы должны использовать 'pbinom (..., lower.tail = FALSE)', а не '1 - pbinom' – rawr

+0

Спасибо за предложение, я буду использовать его в своем коде для получения P (X> x) – Rish

ответ

1

Использование sapply:

t(sapply(c(0.02, 0.05), function(x) 1 - pbinom(1:2, 21, x))) 

#    [,1]  [,2] 
# [1,] 0.06534884 0.008125299 
# [2,] 0.28302816 0.084917514 
1

Привет, вы можете попробовать это,

matrix(1-pbinom(c(1:2,1:2), size=21, prob = rep(c(0.02,0.05), each=2)), ncol=2, byrow=TRUE) 

PS: ошибка означает, что вектор не является той же самой длины вашего входа.