如何在不删除R中存在NA的行的情况下执行聚类

永不圣徒

我有一个在其元素中包含一些NA值的数据。我想做的是在不删除存在NA的行的情况执行聚类

我了解允许这种情况的gower距离测量daisy但是,为什么下面的代码不起作用?我欢迎使用“雏菊”以外的其他替代方法。

# plot heat map with dendogram together.

library("gplots")
library("cluster")


# Arbitrarily assigning NA to some elements
mtcars[2,2] <- "NA"
mtcars[6,7]  <- "NA"

 mydata <- mtcars

hclustfunc <- function(x) hclust(x, method="complete")

# Initially I wanted to use this but it didn't take NA
#distfunc <- function(x) dist(x,method="euclidean")

# Try using daisy GOWER function 
# which suppose to work with NA value
distfunc <- function(x) daisy(x,metric="gower")

d <- distfunc(mydata)
fit <- hclustfunc(d)

# Perform clustering heatmap
heatmap.2(as.matrix(mydata),dendrogram="row",trace="none", margin=c(8,9), hclust=hclustfunc,distfun=distfunc);

我收到的错误消息是这样的:

    Error in which(is.na) : argument to 'which' is not logical
Calls: distfunc.g -> daisy
In addition: Warning messages:
1: In data.matrix(x) : NAs introduced by coercion
2: In data.matrix(x) : NAs introduced by coercion
3: In daisy(x, metric = "gower") :
  binary variable(s) 8, 9 treated as interval scaled
Execution halted

归根结底,我想对NA允许的数据执行分层聚类。

更新资料

使用as.numeric上面的示例进行转换但是,为什么从文本文件读取时此代码失败?

library("gplots")
library("cluster")

# This time read from file
mtcars <- read.table("http://dpaste.com/1496666/plain/",na.strings="NA",sep="\t")

# Following suggestion convert to numeric
mydata <- apply( mtcars, 2, as.numeric )

hclustfunc <- function(x) hclust(x, method="complete")
#distfunc <- function(x) dist(x,method="euclidean")
# Try using daisy GOWER function 
distfunc <- function(x) daisy(x,metric="gower")

d <- distfunc(mydata)
fit <- hclustfunc(d)

heatmap.2(as.matrix(mydata),dendrogram="row",trace="none", margin=c(8,9), hclust=hclustfunc,distfun=distfunc);

我得到的错误是这样的:

  Warning messages:
1: In min(x) : no non-missing arguments to min; returning Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
3: In min(x) : no non-missing arguments to min; returning Inf
4: In max(x) : no non-missing arguments to max; returning -Inf
Error in hclust(x, method = "complete") : 
  NA/NaN/Inf in foreign function call (arg 11)
Calls: hclustfunc -> hclust
Execution halted

文森特·佐尼基德(Vincent Zoonekynd)

该错误是由于数据中存在非数字变量(编码为字符串的数字)引起的。您可以将它们转换为数字:

mydata <- apply( mtcars, 2, as.numeric )
d <- distfunc(mydata)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不删除文件内容的情况下保存在相同的.mat文件中?

来自分类Dev

如何在不删除Linux中其他行的情况下删除标题?

来自分类Dev

如何在不删除R中的行的情况下将一列向下移动

来自分类Dev

如何在不删除现有类的情况下添加新类

来自分类Dev

如何在不删除条目行的情况下从单个 Power Query 列中删除重复项?

来自分类Dev

如何在不删除依赖的情况下删除deb

来自分类Dev

如何在不删除依赖的情况下删除deb

来自分类Dev

如何在不删除指定文件的情况下反转目录中的删除文件

来自分类Dev

如何在不删除约束的情况下“禁用”它们?

来自分类Dev

如何在不删除约束的情况下“禁用”它们?

来自分类Dev

如何在不删除的情况下进行zip压缩?

来自分类Dev

如何在不删除 Windows 的情况下安装 Ubuntu?

来自分类Dev

如何在不删除ios Objective C中某些字符的情况下编辑uitextfield

来自分类Dev

如何在不删除git中的clidl的情况下更新父分支?

来自分类Dev

如何在不删除Python中任何内容的情况下写入CSV文件?

来自分类Dev

如何在不删除其他变量的情况下更新Java中的属性值

来自分类Dev

vim:如何在不删除所有“:”的情况下替换模式中的“:”?

来自分类Dev

如何在不删除RichTextBox中的文本的情况下添加新行并在VB.Net中更改其颜色?

来自分类Dev

如何在不删除具有多对多关系的ember中的记录的情况下删除关联?

来自分类Dev

zsh:如何在不删除文件夹的情况下删除文件夹中的内容?

来自分类Dev

如何在不删除bash目录的情况下删除目录中的所有文件和子目录?

来自分类Dev

如何在不删除bash目录的情况下删除目录中的所有文件和子目录?

来自分类Dev

如何在不删除所有内容的情况下从debian中删除不需要的桌面软件包?

来自分类Dev

如何在不删除任何云存储文件的情况下从我的 PC 中删除 Google 驱动器?

来自分类Dev

如何在不删除用户的情况下删除 Graphileon Interactor 中的 Neo4j Graph?

来自分类Dev

如何在不删除C#中的当前数据的情况下从富文本框中编辑数据

来自分类Dev

如何在不删除Gnome的情况下删除主显节?

来自分类Dev

如何在不删除元素的情况下删除jQuery UI元素?

来自分类Dev

PHP Storm:如何在不删除文件的情况下删除项目

Related 相关文章

  1. 1

    如何在不删除文件内容的情况下保存在相同的.mat文件中?

  2. 2

    如何在不删除Linux中其他行的情况下删除标题?

  3. 3

    如何在不删除R中的行的情况下将一列向下移动

  4. 4

    如何在不删除现有类的情况下添加新类

  5. 5

    如何在不删除条目行的情况下从单个 Power Query 列中删除重复项?

  6. 6

    如何在不删除依赖的情况下删除deb

  7. 7

    如何在不删除依赖的情况下删除deb

  8. 8

    如何在不删除指定文件的情况下反转目录中的删除文件

  9. 9

    如何在不删除约束的情况下“禁用”它们?

  10. 10

    如何在不删除约束的情况下“禁用”它们?

  11. 11

    如何在不删除的情况下进行zip压缩?

  12. 12

    如何在不删除 Windows 的情况下安装 Ubuntu?

  13. 13

    如何在不删除ios Objective C中某些字符的情况下编辑uitextfield

  14. 14

    如何在不删除git中的clidl的情况下更新父分支?

  15. 15

    如何在不删除Python中任何内容的情况下写入CSV文件?

  16. 16

    如何在不删除其他变量的情况下更新Java中的属性值

  17. 17

    vim:如何在不删除所有“:”的情况下替换模式中的“:”?

  18. 18

    如何在不删除RichTextBox中的文本的情况下添加新行并在VB.Net中更改其颜色?

  19. 19

    如何在不删除具有多对多关系的ember中的记录的情况下删除关联?

  20. 20

    zsh:如何在不删除文件夹的情况下删除文件夹中的内容?

  21. 21

    如何在不删除bash目录的情况下删除目录中的所有文件和子目录?

  22. 22

    如何在不删除bash目录的情况下删除目录中的所有文件和子目录?

  23. 23

    如何在不删除所有内容的情况下从debian中删除不需要的桌面软件包?

  24. 24

    如何在不删除任何云存储文件的情况下从我的 PC 中删除 Google 驱动器?

  25. 25

    如何在不删除用户的情况下删除 Graphileon Interactor 中的 Neo4j Graph?

  26. 26

    如何在不删除C#中的当前数据的情况下从富文本框中编辑数据

  27. 27

    如何在不删除Gnome的情况下删除主显节?

  28. 28

    如何在不删除元素的情况下删除jQuery UI元素?

  29. 29

    PHP Storm:如何在不删除文件的情况下删除项目

热门标签

归档