Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中绘制相关矩阵_R_Plot - Fatal编程技术网

在R中绘制相关矩阵

在R中绘制相关矩阵,r,plot,R,Plot,我有一个包含矩阵的csv文件: version getSize() length() ... power 0 23000 23421 0.8 0 .. .. .. 1 .. .. .. 1 .. .. .. 我希望通过对列应用均值函数的类似版本进行聚合。列太多,无法写入它们。我还想计算相关矩阵,并在图的两侧绑定

我有一个包含矩阵的csv文件:

version getSize() length() ... power
0         23000    23421        0.8
0           ..      ..           ..
1           ..      ..           ..
1           ..      ..           ..
我希望通过对列应用均值函数的类似版本进行聚合。列太多,无法写入它们。我还想计算相关矩阵,并在图的两侧绑定幂列。我的代码是:

matrix <- read.csv("/home/francesco/University/UoA/matrix.csv", header=TRUE, sep=",", fileEncoding="windows-1252")
power <- matrix[,"power"]
binded <- cbind(matrix,power)
aggregated <- aggregate(. ~ version, data = binded, mean)
corMatrix <- cor(aggregated, method="spearman")
library(lattice)
levelplot(corMatrix)
matrix.csv的简短摘录如下:

version,native_drawBitmap,nPrepareDirty,nDrawDisplayList,startGC,power
00083,8,88,308,12,0.8967960131052847
00083,0,176,404,1,0.867644513259528
00084,8,88,307,10,0.8980234065469381
00084,0,181,408,1,0.871799879659241
有人知道我做错了什么


提前感谢

好吧,有了您的示例数据,
native\u drawBitmap
列将成为所有4个。因为这没有方差,所以无法计算与任何其他变量的成对相关性,从而得到错误。如果你不写这个专栏,它会有用的。这里有一个例子

#sample data in friendly copy/paste-able format
mm<-data.frame(
    version = c(83, 83, 84, 84), 
    native_drawBitmap = c(8, 0, 8, 0),
    nPrepareDirty = c(88, 176, 88, 181), 
    nDrawDisplayList = c(308, 404, 307, 408), 
    startGC = c(12, 1, 10, 1), 
    power = c(0.896796013105285, 0.867644513259528, 
        0.898023406546938, 0.871799879659241)
)

# these are not needed and don't make sence. Why are you
#trying to re-add the column from mm back onto mm?
# power <- mm[,"power"]
# binded <- cbind(mm,power)
aggregated <- aggregate(. ~ version, data = mm, mean)

#error
corMatrix <- cor(aggregated, method="spearman")
#no error
corMatrix <- cor(aggregated[,-2], method="spearman")
#友好复制/粘贴格式的示例数据

mmA一些指针,不要使用保留字(如矩阵)来命名对象/变量。除非您确定所有变量都是数字,否则不要使用
cbind
。至于警告,你的cor电话结果是NA吗?它告诉你变量的方差为零。如果您粘贴了一些数据,那么我们可以提供更好的帮助。在请求帮助时,做出正确的选择是很重要的。您不必(也不应该)发布所有数据。尽可能少地发布,以重新创建您得到的确切错误。有关创建好的示例的更多信息,请参阅链接文章。矩阵很大,我甚至无法粘贴一行。我已经发布了这张矩阵的几行剪辑。希望这是有用的。@infominer:我没有得到那一行的输出,那么我认为结果是好的。我有17000列。我想这是不可行的。您知道如何自动放弃没有变量的列吗?感谢您可以查找范围非常小的列
badcols您还可以计算方差并排除方差为零的列
nearZeroVarcols@MrFlick:这些命令给了我以下错误:错误!badcols:无效参数type@user3657495对不起,那应该是
sapply
,而不是
lappy
#sample data in friendly copy/paste-able format
mm<-data.frame(
    version = c(83, 83, 84, 84), 
    native_drawBitmap = c(8, 0, 8, 0),
    nPrepareDirty = c(88, 176, 88, 181), 
    nDrawDisplayList = c(308, 404, 307, 408), 
    startGC = c(12, 1, 10, 1), 
    power = c(0.896796013105285, 0.867644513259528, 
        0.898023406546938, 0.871799879659241)
)

# these are not needed and don't make sence. Why are you
#trying to re-add the column from mm back onto mm?
# power <- mm[,"power"]
# binded <- cbind(mm,power)
aggregated <- aggregate(. ~ version, data = mm, mean)

#error
corMatrix <- cor(aggregated, method="spearman")
#no error
corMatrix <- cor(aggregated[,-2], method="spearman")