R:cor()和corrplot()

时间:2016-04-14 22:27:20

标签: r excel csv r-corrplot

另一个绊脚石。我有一大堆数据(称为“明亮”),大约有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用于 show 相关结果时,我会执行以下操作:

  

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

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

任何帮助都会非常感激!非常感谢!!

1 个答案:

答案 0 :(得分:0)

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

将数据样本放入问题中会很有帮助
str(head(your_dataset))

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