В R, как вы рассчитываете векторы символов? - PullRequest
2 голосов
/ 09 сентября 2010

Я использовал функцию выборки в R для генерации выборки из 100 монетных бросков, вот команды, которые я использовал.

fair.coin = c("heads" = 0.5, "tails" = 0.5)

тогда

x <- sample(fair.coin, size = 100, replace = TRUE)
> x

tails tails tails heads tails tails tails heads heads tails heads heads tails tails

  0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5 

heads tails heads tails tails tails tails heads heads heads heads tails heads tails 

  0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5 

tails tails tails heads heads heads heads heads heads heads tails heads tails tails 

  0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5 

tails heads tails heads heads heads tails tails heads tails tails heads heads heads 

  0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5 

heads tails tails tails heads heads tails tails tails heads heads heads heads tails 

  0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5 

tails heads heads heads tails tails tails heads heads heads tails heads tails tails 

  0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5 

heads tails heads heads tails heads tails tails tails heads heads heads tails heads 

  0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5 

tails tails 

  0.5   0.5 

Вот что я сейчас получаю. И я ищу, чтобы найти общее количество голов в этом образце, как я могу это сделать? Я пробовал sum(x>0.5), x[-tails] и так далее, все они считают числа (так как они справедливы, все r 0,5), а не имена вектора. Есть ли функции в R, которые я могу использовать для подсчета количества головок в этих 100 сэмплах?

Заранее спасибо!

Ответы [ 2 ]

9 голосов
/ 09 сентября 2010

Не знаю, что вы пытаетесь сделать, но это работает с вашими данными

length(x[names(x)=="tails"])
[1] 45

или

> table(names(x))

heads tails 
   55    45 

Тем не менее, ваши данные кажутся мне очень загадочными.Это даже не символьный вектор, это числовой вектор с именами.Возможно, вы пытаетесь что-то вроде:

> x <-  sample(c("heads","tails"),
+        size=100,
+        replace = TRUE,
+        prob=c(0.5,0.5)
+       )

> length(x[x=="tails"])
[1] 43

> table(x)
x
heads tails 
   57    43 
4 голосов
/ 09 сентября 2010
table(names(x))

Кстати, вам лучше использовать,

x <- sample(c("heads","tails"),size=100,replace=T)

для генерации этих данных. Тогда вы можете использовать table(x).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...