在R?中查找二进制变量之间的相关性时出错



我有一个二进制/因子变量的变量列表(10)。例如,有特定副作用的人和没有的人。我想找出这些变量之间的相关性。一个变量与另一个变量是否相关。我不能使用R中的cor函数,因为它只处理连续/定量数据。所以我用的是四声函数

correlation_data <- Toxicity %>% dplyr::select('variable1', 'variable2', 'variable3', 'variable4', etc....) %>% na.omit()
correlation_data [] <- lapply(correlation_data, factor)
install.packages("psych")
library(psych)
tetrachoric(correlation_data)

然而,我得到一个错误说:

Error in t(x) - mx : non-numeric argument to binary operator

我不确定这是什么意思?如何克服这个错误?

数据必须是数字(在本例中是二进制)。您可以看到,如果数据是数字,它可以工作,但如果它们是因子,它就不能:

library(dplyr)
library(psych)
bins <- matrix(rbinom(250, 1, .25), ncol=10)
bins <- as.data.frame(bins)
tetrachoric(bins)
#> Warning in cor.smooth(mat): Matrix was not positive definite, smoothing was done
#> Call: tetrachoric(x = bins)
#> tetrachoric correlation 
#>     V1    V2    V3    V4    V5    V6    V7    V8    V9    V10  
#> V1   1.00                                                      
#> V2   0.47  1.00                                                
#> V3  -0.18  0.02  1.00                                          
#> V4  -0.17  0.03  0.65  1.00                                    
#> V5   0.11 -0.10 -0.26 -0.26  1.00                              
#> V6   0.38  0.45 -0.06 -0.36 -0.18  1.00                        
#> V7  -0.06 -0.28 -0.06 -0.08 -0.16  0.28  1.00                  
#> V8  -0.33 -0.19  0.02  0.03 -0.10  0.14  0.41  1.00            
#> V9  -0.25 -0.65 -0.26 -0.22  0.32 -0.47  0.51 -0.10  1.00      
#> V10 -0.26 -0.10  0.11  0.11  0.00  0.23  0.24  0.33 -0.01  1.00
#> 
#>  with tau of 
#>   V1   V2   V3   V4   V5   V6   V7   V8   V9  V10 
#> 0.99 0.71 0.99 0.99 0.84 0.58 0.58 0.71 0.25 0.84
bins <- bins %>% 
mutate(across(everything(), as.factor))
tetrachoric(bins)
#> Error in t(x) - mx: non-numeric argument to binary operator

在2022-05-10由reprex包(v2.0.1)创建

相关内容

  • 没有找到相关文章

最新更新