【问题标题】:R - How can I change the values of a dataframe based off a scoring key?R - 如何根据评分键更改数据框的值?
【发布时间】:2021-05-18 19:02:00
【问题描述】:
Answer.Key <- c(3, 5, 1, 3, 4, 4, 4, 4, 1, 2, 1, 2, 4, 2, 2, 2, 3, 4, 1, 4, 4, 4, 4, 2, 5, 2, 2, 2, 2, 4, 2, 1, 3, 1, 3, 4, 4, 2, 4, 4, 3, 2, 3, 3, 2, 4, 1)
# A tibble: 341 x 47
   Item1 Item2 Item3 Item4 Item5 Item6 Item7 Item8 Item9 Item10 Item11 Item12 Item13 Item14 Item15
   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
 1     2     5     1     1     2     4     4     2     5      2      1      2      1      1      2
 2     1     5     1     3     4     4     4     4     1      2      1      2      2      2      2
 3     2     5     1     3     4     4     4     2     1      2      1      2      3      2      2
 4     3     5     1     3     4     4     4     4     1      2      1      2      4      2      1
 5     1     5     4     3     4     4     4     4     1      2      4      2      2      2      1
 6     3     5     1     3     4     4     4     4     4      2      1      2      4      2      2
 7     3     5     1     3     4     4     4     4     4      2      1      2      2      2      2
 8     3     5     1     3     2     4     4     4     1      2      1      2      1      1      2
 9     3     5     1     3     4     4     4     4     1      2      1      2      2      2      1
10     3     5     1     3     4     4     4     4     1      2      1      2      4      2      2
# … with 331 more rows, and 32 more variables: Item16 <dbl>, Item17 <dbl>, Item18 <dbl>,
#   Item19 <dbl>, Item20 <dbl>, Item21 <dbl>, Item22 <dbl>, Item23 <dbl>, Item24 <dbl>,
#   Item25 <dbl>, Item26 <dbl>, Item27 <dbl>, Item28 <dbl>, Item29 <dbl>, Item30 <dbl>,
#   Item31 <dbl>, Item32 <dbl>, Item33 <dbl>, Item34 <dbl>, Item35 <dbl>, Item36 <dbl>,
#   Item37 <dbl>, Item38 <dbl>, Item39 <dbl>, Item40 <dbl>, Item41 <dbl>, Item42 <dbl>,
#   Item43 <dbl>, Item44 <dbl>, Item45 <dbl>, Item46 <dbl>, Item47 <dbl>

我有多项选择题的答案。 341 名参与者回答了 47 个问题。我也有这个测试的钥匙。我了解如何使用 for 循环一次将一列中的正确答案更改为 0,因此我可以计算一行中有多少个零,这就是参与者的分数。唯一的问题是有 47 列,每列都有不同的正确答案。

如何使用我的答案键并将答案键中的每个值分配给其特定列?这将使该过程比为每列编写 47 个 for 循环更有效。

感谢您的帮助。

【问题讨论】:

    标签: r dataframe for-loop data-analysis


    【解决方案1】:

    R 是矢量化的,所以你可以这样做

    res <- t(Answer.Key == t(test))
    res
    #    Item1 Item2 Item3 Item4 Item5 Item6 Item7 Item8 Item9 Item10 Item11 Item12 Item13 Item14 Item15
    # 1  FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE   TRUE   TRUE   TRUE  FALSE  FALSE   TRUE
    # 2  FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE   TRUE   TRUE   TRUE  FALSE   TRUE   TRUE
    # 3  FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE   TRUE   TRUE   TRUE  FALSE   TRUE   TRUE
    # 4   TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE   TRUE   TRUE   TRUE   TRUE   TRUE  FALSE
    # 5  FALSE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE   TRUE  FALSE   TRUE  FALSE   TRUE  FALSE
    # 6   TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE   TRUE   TRUE   TRUE   TRUE   TRUE   TRUE
    # 7   TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE   TRUE   TRUE   TRUE  FALSE   TRUE   TRUE
    # 8   TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE   TRUE   TRUE   TRUE  FALSE  FALSE   TRUE
    # 9   TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE   TRUE   TRUE   TRUE  FALSE   TRUE  FALSE
    # 10  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE   TRUE   TRUE   TRUE   TRUE   TRUE   TRUE
    

    rowSums(res)
    # 1  2  3  4  5  6  7  8  9 10 
    # 8 13 12 14 10 14 13 12 13 15 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-30
      • 2020-01-19
      • 2021-02-04
      • 2013-07-31
      • 2014-09-02
      • 2021-05-29
      • 2021-11-24
      • 2021-12-04
      相关资源
      最近更新 更多