2015-04-05 2 views
1

Я по существу вычисляю вероятности, которые я надеюсь построить. Моя цель состояла в том, чтобы поместить их в список или вектор, но у меня были проблемы с этим. Я написал цикл for, и я могу распечатать все значения, но я не могу их хранить в списке.Добавление или сохранение цикла for в r в списке

probs <- list() 
for (i in seq(0,1,length=100)) { 
    append(probs,1 - mean(rbinom(100000,6,i)==4)) 
} 

Я смог распечатать результаты (см. Ниже), но не хранить их.

for (i in seq(0,1,length=100)) { 
    print(1 - mean(rbinom(100000,6,i)==4)) 
} 

Когда я вижу, что в списке вероятностей я получаю пустой list. Почему это так?

ответ

0

append не мутирует список, он просто возвращает новый list, который теряется, потому что он не сохраняется нигде.

Попробуйте это:

probs <- list() 
for (i in seq(0,1,length=100)) { 
    probs <- append(probs,1 - mean(rbinom(100000,6,i)==4)) 
} 

или использовать vector вместо:

probs <- vector() 
for (i in seq(0,1,length=100)) { 
    probs <- append(probs,1 - mean(rbinom(100000,6,i)==4)) 
} 
probs # obviously it varies per execution 
    [1] 1.00000 1.00000 1.00000 0.99999 0.99994 0.99988 0.99981 0.99971 0.99946 
[10] 0.99921 0.99864 0.99824 0.99758 0.99674 0.99573 0.99466 0.99271 0.99031 
[19] 0.98862 0.98669 0.98389 0.98074 0.97781 0.97457 0.97028 0.96523 0.96225 
[28] 0.95483 0.94936 0.94447 0.93965 0.93278 0.92486 0.91704 0.90908 0.90305 
[37] 0.89365 0.88608 0.87596 0.86834 0.85762 0.84787 0.83998 0.82830 0.81918 
[46] 0.80843 0.80078 0.78881 0.77933 0.77061 0.76032 0.75416 0.74201 0.73520 
[55] 0.72575 0.71545 0.70855 0.70364 0.69809 0.69209 0.68604 0.68294 0.67610 
[64] 0.67491 0.67463 0.67226 0.67048 0.66950 0.67413 0.67556 0.67900 0.68065 
[73] 0.68591 0.69526 0.70135 0.70930 0.71619 0.72765 0.73874 0.75130 0.76355 
[82] 0.77658 0.79165 0.80553 0.82090 0.83728 0.84947 0.86944 0.88331 0.90126 
[91] 0.91595 0.92875 0.94334 0.95669 0.96918 0.97930 0.98813 0.99400 0.99856 
[100] 1.00000 
+0

аааа Гоча. благодаря! – itjcms18