首页 文章

R:cor()和corrplot()中的错误

提问于
浏览
0

另一个绊脚石 . 我有一大堆数据(称为“明亮”),大约有180k行和165列 . 我试图在R中创建这些列的相关矩阵

出现了几个问题,我无法通过本网站和其他人提出的建议来解决这些问题 .

首先,我如何创建数据集:我将其保存为Excel中的CSV文件 . 我的理解是CSV应该删除任何格式,这样任何数字都应该被R读取为数字 . 我加载它

brightly = read.csv(“brightly.csv”,header = TRUE)

但是每次运行cor(明亮地)时,我都会一直得到“'x'必须是数字”错误消息,所以我用0替换了所有的NA . (这可能会改变我的数据,但我认为它会没事 - 任何“NA”实际上都是0,无论是连续变量还是虚拟变量 . )

现在我不再收到有关文本的错误消息 . 但是任何时候我运行cor() - 同时对所有变量或变量的组合 - 我得到“警告消息:在cor(明亮$ PPV,明亮,使用=”完成“):标准偏差是零”

我也有一些变量与其他变量的相关性显示为“NA” . 我确保数据中没有单元格是“NA”,所以我不知道为什么我得到相关的“NA”值 .

我也尝试了以下两种方法,以确保我没有包含任何NA值:

cor(明亮$ PPV,明亮地,使用=“pairwise.complete.obs”)

COR(明亮$ PPV,明亮,使用= “完成”)

但我仍然得到关于SD为零的警告,我仍然得到了NA .

有关为什么会发生这种情况的任何见解?

最后,当我尝试使用corrplot来显示相关结果时,我会执行以下操作:

brightly2 < - cor(明亮)警告信息:在cor(明亮):标准偏差为零corrplot(brightly2,method =“number”)if(min(corr)<-1 - .Machine $ double.eps中的错误|| max(corr)> 1.Machine $ double.eps){:缺少值需要TRUE / FALSE

而不是制作我漂亮的颜色编码相关矩阵,我得到了这个 . 我还没有找到这意味着什么的解释 .

任何帮助都将非常感谢!非常感谢!!

1 回答

  • 0

    请检查是否用0或'0'替换了你的NA,因为一个是字符,而另一个是int . 或者您甚至可以尝试使用 as.numeric(column_name) 函数将您的char 0转换为int 0.如果您的数据集具有因子,则会发生此错误,因为这些不是int值,因此corrplot会抛出此错误 . 使用您将数据样本放入问题中会很有帮助

    str(head(your_dataset))
    

    这对检查列的数据类型很有帮助 . 如果我错了,请告诉我 . Cheerio .

相关问题