【问题标题】:R package psych two means in one variable after combiningR package psych 组合后两个均值在一个变量中
【发布时间】:2020-01-20 12:27:36
【问题描述】:

我目前正在为一个学生项目分析数据。 在分析过程中,我使用 cbind() 将两个变量合二为一:

interpas$GA02_01 <- cbind(interpas$LP02_01, interpas$ST02_01)

两个变量 LP02_01 和 ST02_01 测量相同的问题,但针对不同的媒体格式。两者之间没有重叠。结构是这样的:

LP02_01 ST02_01
1        NA
NA       2
NA       5
4        NA

所以它们只是结合在一起。 当我使用 R 中的内置 mean() 函数计算平均值时,我得到了新变量 GA02_01 的平均值。

但是,当我使用包 psych 的均值函数或来自该包的任何其他用于描述性统计的函数(如 describe)时,它仍在分别计算两个变量 LP02_01 和 ST02_01。 像这样:

> describe(interpas$GA02_01)
   vars   n mean   sd median trimmed  mad min max range skew kurtosis   se
X1    1 151 3.62 1.89      4    3.59 1.48   1   7     6 0.00    -1.24 0.15
X2    2  63 2.70 1.92      2    2.45 1.48   1   7     6 0.85    -0.64 0.24

有人知道这个问题的解决方案吗?不幸的是,我需要 psych 包中的描述性函数 skew 和 kurtosi 进行进一步分析,以及检查正态分布的函数。

非常感谢!

【问题讨论】:

    标签: r variables psych


    【解决方案1】:

    我会研究 Coalesce

    所以你可能想要这样的东西:

    df%>%
    mutate(new_var = coalesce(old_var1, old_var2)%>%
    select(-c(old_var1,old_var2))
    

    这里是 dplyr 中函数的文档。 https://www.rdocumentation.org/packages/dplyr/versions/0.7.8/topics/coalesce

    【讨论】:

      【解决方案2】:

      你只需要unlist你的数据框。 但是确保您以正确的方式(针对您的用例)选择所需的列。例如,当您使用cbind 时,您将创建矩阵。您可以只使用索引,即df[1:2](用于第一列和第二列)或按名称,即df[,c("LP02_01", "ST02_01")]。这样你就可以得到一个数据框对象。然后你可以unlistdescribe(),即

      psych::describe(unlist(interpas[, c("LP02_01", "ST02_01")]))
      #   vars n mean   sd median trimmed  mad min max range skew kurtosis   se
      #X1    1 4    3 1.83      3       3 2.22   1   5     4    0    -2.24 0.91
      

      【讨论】:

      • 谢谢!我可以继续使用这个变量吗?在下一步中,我需要进行验证性因素分析。每次使用时都必须取消列出该变量吗?因为当我查看变量时,我得到了 GA01_01.LP01_01 和 GA01_01.ST01_01。难道没有办法只用 LP01_01 和 ST01_01 的值创建一个新变量吗?
      • 我不确定我明白你在问什么
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 2022-10-05
      • 2014-04-30
      • 2022-11-23
      • 1970-01-01
      • 2018-01-12
      相关资源
      最近更新 更多