另一个绊脚石。我有一大堆数据(称为“明亮”),大约有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的值
而不是制作我漂亮的彩色编码相关矩阵,我得到了这个。我还没有找到这意味着什么的解释。
任何帮助都会非常感激!非常感谢!!
答案 0 :(得分:0)
请检查你是否用0或'0'替换你的NA,因为一个是字符而另一个是int。或者您甚至可以尝试使用as.numeric(column_name)
函数将您的char 0转换为int 0.如果您的数据集具有因子,则会发生此错误,因为这些不是int值,因此corrplot会抛出此错误。
使用
str(head(your_dataset))
这对检查列的数据类型很有帮助。 如果我错了,请告诉我。 Cheerio。