有什么方法可以解决或阻止 cardinality_threshold 中的这个错误问题?

问题描述

我有大约 17 个土壤变量,我想将它们与海拔、温度和降雨量与物种丰富度和丰度相关联。我有 39 个地块(行),列包含环境变量,例如海拔、丰度、物种丰富度、温度、降雨量,然后是土壤变量列表(17 列)。下面是我的脚本。

我的脚本有问题还是我使用的 Mac 的笔记本电脑兼容性有问题?请帮忙。谢谢

运行代码后,我收到此错误

stop_if_high_cardinality(数据,列,cardinality_threshold)错误

“pH”列的水平 (24) 多于允许的阈值 (15)。 请删除该列或增加“cardinality_threshold”参数。增加 cardinality_threshold 可能会产生较长的处理时间

  Ggally::ggpairs(
    na.omit(nfi_nontree_soilclim_data[,c(11:18)]),upper = list(
      continuous = wrap(
        custom_ggally_cor,method = "spearman",exact = FALSE,size = 2.5,col = "black",family = "serif",digits = 2
      ),combo = "Box_no_facet",discrete = "count",na = "na"
    ),lower = list(
      continuous = wrap(
        ggally_smooth,method = "loess",formula = y ~ x,se = F,lwd = 3,col = "red",shrink = T
      ),combo = "facethist",discrete = "facetbar",diag = list(
      continuous = wrap(
        ggally_densityDiag,col = "darkgrey",lwd = .1,stat = "density",fill = "darkgrey"
      ),continuous = "densityDiag",na = "naDiag"
    ),axisLabels = c("show")
  ) + theme_bw() + theme(
    text = element_text(family = "serif",size = 4),axis.text = element_text(family = "serif",panel.grid = element_blank()
  )```

解决方法

此错误是内置停止,因为默认参数设置为仅允许在一个图形中显示变量的 15 个级别。您的变量之一有 24 个级别,因此您可以将参数(即 cardinality_threshold)调整为该值 24 或将其设置为 NULL。如果 24 的值并不总是相同,则 Null 可能更具有普遍性。但总的来说,一次描述的水平数量会受到阻碍,并且会有这些止损限制。

library(GGally)

data(iris)

创建因子超过 15 个级别的数据

iris$group = as.factor(sample(sample(letters,16),150,replace = TRUE))

只是证明任何一个条目都可以工作

ggpairs(iris,cardinality_threshold = 16) 

ggpairs(iris,cardinality_threshold = NULL)