【问题标题】:In R, how do you count the character vectors?在 R 中,如何计算字符向量?
【发布时间】:2026-01-20 10:40:02
【问题描述】:

我使用 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&gt;0.5)x[-tails] 等等,它们都在计算数字(因为它们是公平的,都是 r 0.5),而不是向量的名称。 RI中有什么函数可以用来统计这100个样本中的正面数量吗?

提前致谢!

【问题讨论】:

    标签: r


    【解决方案1】:

    不知道您要做什么,但这适用于您的数据

    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 
    

    【讨论】:

      【解决方案2】:
      table(names(x))
      

      顺便说一句,你最好用,

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

      生成此数据。然后你可以使用table(x)

      【讨论】:

        最近更新 更多