【问题标题】:Calculating row means across factor variables with strings for values使用字符串作为值计算跨因子变量的行均值
【发布时间】:2018-11-13 20:49:07
【问题描述】:

我有四个由值组成的变量:正确/不正确:

Var1      Var2      Var3      Var4 
Correct   Correct   Correct   Correct
Incorrect Incorrect Incorrect Correct
Incorrect Incorrect Correct   Incorrect
Incorrect Correct   Correct   Correct

我想知道是否有一种简单的方法可以计算可以分配为新变量的每一行的平均分数。无需在数据集中用 1/0 实际替换正确/不正确。

分数是为了正确性,例如,第 1 行的分数为 1,第 4 行的分数为 0.75。

【问题讨论】:

    标签: r average


    【解决方案1】:

    使用rowMeans

    df1$new_Var <- rowMeans(df1 == "Correct")
    df1
    #       Var1      Var2      Var3      Var4 new_Var
    #1   Correct   Correct   Correct   Correct    1.00
    #2 Incorrect Incorrect Incorrect   Correct    0.25
    #3 Incorrect Incorrect   Correct Incorrect    0.25
    #4 Incorrect   Correct   Correct   Correct    0.75
    

    数据

    df1 <- read.table(text = "Var1      Var2      Var3      Var4 
    Correct   Correct   Correct   Correct
    Incorrect Incorrect Incorrect Correct
    Incorrect Incorrect Correct   Incorrect
    Incorrect Correct   Correct   Correct", stringsAsFactors = FALSE, header = TRUE)
    

    【讨论】:

    • 谢谢。如果我从更大的数据集中提取 4 个变量,你能告诉我这会是什么样子吗?我熟悉rowMeans,但不熟悉如何整合逻辑表达式。
    • 当然。你能用更真实的示例数据更新你的问题吗?那就是再添加两列并显示您的真实列名的样子。
    • 我相信我已经弄明白了。这就是我所做的......数据df1
    • 很高兴它成功了。你可能想试试rowMeans(df1[ ,paste0("Comp", 1:4)] == "Correct")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2015-10-15
    • 1970-01-01
    • 2013-12-28
    • 2020-07-04
    • 1970-01-01
    相关资源
    最近更新 更多