【问题标题】:How can i count y/n answer in r?我如何计算 r 中的 y/n 答案?
【发布时间】:2016-04-12 07:35:34
【问题描述】:

我将使用 r 编程创建调查。但我是新人。我想计算“是”和“否”的答案,这会问每个人。并与他们一起创建数据。我怎样才能做到这一点?我的代码如下:

 survey <- c ("Are you student?", "Do you drive car?", "Do you smoke cigarette?")

surveyfunct <- function(v,m){
   for(i in 1:length(v))
       {m <-readline(v[i])
        if (m == "yes" && m == "no"){
            m <- readline(v[i+1])}}
    return (list(m))}

【问题讨论】:

  • 请您出示您的完整代码以使您的问题可重现。请记住,R 是矢量化的,因此 sum(v == "yes") 这样的代码很有用
  • 这也是我的完整代码,这是我正在尝试的完整问题。 “创建一个包含 20 个(是/否)问题的调查。用户将分别看到问题,并且应该只接受“是”或“否”作为答案。您应该创建一个向量来保存用户给出的所有答案。因此,在一位用户回答完所有问题后,将他/她的答案保存到名为“answers.csv”的文件中,如果新用户填写调查表,他/她的答案应附加到同一文件中。”
  • 您想使用 R 作为刺激演示环境吗? 1. 有很多原因不建议这样做(我会去精神病) 2. 如果你错过了,请看看link? 3. 如果真的必须/想要在 R 中执行此操作,请查看 Shiny link

标签: r


【解决方案1】:

为了收集答案,你可以使用这样的功能

survey <- c ("Are you student?", "Do you drive car?", "Do you smoke cigarette?")

surveyfunct <- function(q){
  
  return (readline(q))}

answers=sapply(survey,surveyfunct)

然后您可以将所需答案子集化或将它们全部写入 csv。

如果你只想要yes\no答案,你可以添加while

surveyfunct <- function(q){
  h=0
  while (h==0){
    
    a=readline(q)
    if( a %in% c("yes","no")){
      h=1}
  }
  return (a)}

对于计数,您可以简单地使用table

示例

> answers=sapply(survey,surveyfunct)
Are you student?yes
Do you drive car?no
Do you smoke cigarette?yes
> table(answers)
answers
 no yes 
  1   2 

【讨论】:

    猜你喜欢
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    相关资源
    最近更新 更多