首页 > 解决方案 > R package psych 组合后两个均值在一个变量中

问题描述

我目前正在为一个学生项目分析数据。在分析过程中,我使用 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 的 mean 函数,或该包中用于描述性统计的任何其他函数(如 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 进行进一步分析,并需要一个函数来检查正态分布。

非常感谢!

标签: rvariablespsych

解决方案


我会研究 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


推荐阅读