r - 所选列与 R 中 data.frame 的其余部分之间的相关性
问题描述
我的数据大约有 270 列,其中 160.000主要是非数字观察。
我需要找到列之间的模式和依赖关系。例如,我需要将“材料”列与其他列相关联。
Material | Name | Country | Vehicle
----------------------------------------------
Bricks | John | A | Car
Bricks | John | A | Car
Bricks | John | A | Motorcycles
Bricks | John | B | Motorcycles
Concrete | Bill | B | Car
Concrete | Bill | B | Car
Concrete | Bill | B | Car
Concrete | Bill | A | Car
我想要的结果是:
Name - 100%
Country - 75%
Vehicle - 50%
我试过了:
library("GoodmanKruskal")
Cor_matrix<- GKtauDataframe(df)
plot(Cor_matrix)
但得到:表中的错误(x,y,useNA = includeNA):尝试使用> = 2 ^ 31个元素制作表
或者:
library("corrr")
df %>% correlate() %>% focus(Material)
stats::cor(x = x, y = y, use = use, method = method) 中的错误:'x' 必须是数字
所以我正在寻找可以处理非数字的包和代码示例。提前谢谢了。
解决方案
您的代码使用函数GKtauDataframe
,该函数尝试同时计算所有 270 x 270 组合的指标。那太多了。
但是,正如您所提到的,您宁愿将一列与所有其他列进行比较。这应该是可行的,并且不需要那么多内存。该函数GKtau
在一对列之间执行此操作:
GKtau(df[, 1], df[, 2])
要针对所有其他列获取第一列的值,只需调用:
lapply(df[, -1], GKtau, df[, 1])
当然,您可以使用以下方法优化输出:
sapply(df[, -1], function(di) GKtau(df[, 1], di)$tauxy)
这使得输出方式更加紧凑。
推荐阅读
- excel - 如何从excel中的单元格中拆分内容
- android - 即使存在也无法在渲染模式下访问数组元素
- azure - 我们可以将用户添加到 Azure AD 域服务域吗
- vue-component - Vue 3 基于类的组件不调用钩子方法
- amazon-web-services - 如何在 spark-submit 期间从 S3 获取 typesafe-config 文件?
- shopify - Shopify 的调试液
- python - python中.log文件中的彩色日志
- swift - 即使 setAutoplays(_:) 设置为 false,WKInterfaceInlineMovie 也会开始播放
- joomla - 为 gantry5(joomla)创建面包屑粒子的问题
- javascript - 如何检查recaptcha 是否有效?