我目前正在分析一个学生项目的数据。在分析过程中,我将两个变量组合成一个具有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中内置的平均值()函数计算平均值时,我得到了新变量GA02_01的平均值。
但是,当我使用包心理的平均值函数,或者用于描述性统计的任何其他函数(如描述)时,它仍然分别计算两个变量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有人知道解决这个问题的办法吗?不幸的是,我需要用于进一步分析的心理包中的描述函数倾斜和kurtosi,以及检查正态分布的函数。
非常感谢!
发布于 2020-01-20 13:11:03
您只需要unlist您的数据框架。然而,确保您以正确的方式(为您的使用)选择所需的列。例如,在使用cbind时,可以创建矩阵。您只需使用索引,即df[1:2] (用于第一列和第二列)或名称,即df[,c("LP02_01", "ST02_01")]。这样,您就可以得到一个数据帧对象。然后您可以只使用unlist和describe(),即
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发布于 2020-01-20 13:07:10
我会调查一下
所以你可能想要这样的东西:
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
https://stackoverflow.com/questions/59823294
复制相似问题