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

2023-11-22

我有一个数据,其元素中包含一些 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 允许的数据执行层次聚类。

Update

转换为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


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

mydata <- apply( mtcars, 2, as.numeric )
d <- distfunc(mydata)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 从 r 中的多个列表创建二进制(存在/不存在)数据矩阵

    我有一系列不同长度的单独变量列表 字符串 我想将它们组合成一个数据帧以形成存在 1 不存在 0 矩阵 鉴于它们的长度不同 我什至不知道如何创建初始数据框 这是我的例子 data1 lt c a b c d e f data2 lt c e
  • 根据 R 中的另一个变量过滤簇中的 id

    我有 100 名患者的数据 每个患者都有 7 天 1 到 7 的值 如何仅在第一天根据另一个变量选择患者 df lt data frame id c 1 1 1 2 2 2 day c 1 2 3 1 2 3 RRT c 0 1 0 1 0
  • R中两个时间之间的时间差

    我正在尝试计算 R 中两个时间之间的差异 例如 两个时间之间的时间差 03 15 和 01 40 将为 1 小时 35 分钟 我在 R 中尝试了以下代码 difftime 03 15 01 40 tz units secs 但我收到以下错误
  • 使用 R 进行语言相关排序

    1 如何正确排序 任务是根据英文字母对美国州名缩写进行排序 但我注意到 R 根据某种操作系统语言或区域设置对列表进行排序 例如 在我的语言 立陶宛语 中 甚至拉丁语 非立陶宛语 字母的顺序也与英语字母表中的顺序不同 仅比较两个字母表中的非立
  • 从数据帧创建 sf 多边形

    我有一个包含一组多边形坐标的数据框 这就是我将其转换为spatialPolygons 包sp 的方法 my df lt data frame Plot c A A A A A B B B B B Corner c SW NW NE SE S
  • 如何在 R 中压缩多个 CSV 文件?

    我正在尝试在 R 中压缩多个 CSV 文件 下面是供参考的代码 Create two dataframes using inbuilt datasets for reproducible code df1 lt head mtcars df
  • 在r中水平旋转直方图

    谁能帮我如何在 r 中将直方图旋转 90 度 我知道箱线图中有一个选项 horiz T 但我不知道直方图是否有类似的选项 我认为你必须使用 hist 和 barplot 来完成它 如下所示 直接来自文档 你可以在这里检查它 layout x
  • 使用条件求 R 中的累积和

    我需要创建一个新变量 其中包含每个 ID 过去三年金额的总和 如果没有三年的数据 则应显示 NA 举个例子 ID YEAR AMOUNT 1 2010 5 1 2011 2 1 2012 4 1 2013 1 1 2014 3 2 2013
  • 将时间值转换为数字,同时保留时间特征

    我有一个数据集 其中包含不同事件发生的间隔时间 我想要做的是将数据转换为数字向量 以便更容易操作和运行摘要 制作图表等 同时保持其时间特征 这是我的数据片段 data lt c 03 31 12 17 16 29 09 52 04 01 0
  • 如何从 Matlab 运行 R 脚本 [重复]

    这个问题在这里已经有答案了 我有 m 文件 我想用它来运行 R 脚本 我怎样才能做到这一点 Matlab文件 caller m some matlab code need to call a R script some matlab cod
  • 将数据帧单列中的值向上移动

    使用这样的示例数据 example data frame x c 1 2 3 4 5 6 7 8 y c 1 2 3 4 5 6 7 8 z c 1 2 3 4 5 6 7 8 看起来像这样 x y z 1 1 1 1 2 2 2 2 3
  • 获取R中另一列值为1的列的中位数

    好的 我有一个类似于此结构的 csv 文件 hashID value flag 98fafd 35 1 fh56w2 25 0 ggjeas 55 1 adfh5d 45 0 基本上我想要做的是获取值列的中位数 但只包含其中的行flag 1
  • 删除 R 数据框中所有列名称的前两个字符

    有没有办法从数据框中的所有列名中按位置删除字符串 例如 如果我有如下列名称 ab sales1 kj sales2 lm sales3 pk sales100 10 34 64 288 我希望我的输出列名称类似于 sales1 sales2
  • 如何有条件地选择一列,并从 R 中另一个有条件选择的列中的行中减去这些行中的值?

    我知道我的问题标题很冗长 可能很难理解 所以我会尽力在这里解释一下 这是一些示例数据 transactions lt tibble id seq 1 7 day paste rep day each 7 seq 1 7 sep sent t
  • 如何使用ggplot2在轴标签上显示层次结构?

    I would like to create a plot like this with ggplot2 我在这里犯了一个小错误 导致并非所有标签都显示出来 显然我确实希望所有标签都显示 然而 我的谷歌搜索没有找到任何结果 我得到的最接近的
  • 使用Shiny和Shinydashboard时如何使图标大小一致?

    我在闪亮的应用程序中添加可点击的图标以显示弹出信息框 请参阅以下屏幕截图和代码示例 我的策略是将我的文本和代码包装起来actionLink in the HTML功能 这效果很好 然而 图标的大小是由关联的大小决定的 我想知道是否可以使所有
  • R中舍入单位的舍入数字[重复]

    这个问题在这里已经有答案了 我正在尝试按舍入单位对数字进行舍入 例如 value lt c 8 21 1 76 6 42 1 94 10 38 如果舍入单位为 0 2 则结果为 8 2 1 8 6 4 2 0 10 4 我怎样才能在R中做到
  • 替换 gtable 中 ggplot 的元素:标签和网格线

    我正在学习操纵ggplot对象与gtable 这是我问的一个相关问题 用 grid 和 gtable 拆解 ggplot https stackoverflow com questions 27750737 dismantling a gg
  • 当隐含 ID 列时,如何合并 csv 文件中的多个数据框?

    我想将一堆数据框合并在一起 因为如果您只处理一个数据框 则许多操作似乎会更容易 但如果我错了 请纠正我 目前我有一个像这样的数据框 ID var1 var2 A 2 2 B 4 5 Z 3 2 每个 ID 位于单行上 并带有多个单个测量值
  • dplyr 中每组的 cumsum

    我开始享受dplyr但我陷入了一个用例 我希望能够申请cumsum数据框中的每个组与包 但我似乎无法正确处理 对于演示数据框 我生成了以下数据 set seed 123 len 10 dates as Date 2014 01 01 1 l

随机推荐

  • 处理作曲家废弃包的最佳实践是什么?

    当我运行作曲家更新时 我偶尔会收到软件包已被放弃的消息 我应该使用不同的软件包 例如Package webflo drupal core require dev is abandoned you should avoid using it
  • 上传文件在更新面板中不起作用

    我不想刷新或回发我的页面 所以我尝试在 updatepanel 中上传文件 但单击上传按钮时验证检查显示没有文件 我的html代码是
  • C++14 变量模板:它们的用途是什么?有使用示例吗?

    C 14 将允许创建模板化变量 通常的例子是变量 pi 可以读取它来获取各种类型的数学常数 的值 3 表示int 最接近的值可能是float etc 除此之外 我们只需将变量包装在模板化结构或类中即可获得此功能 这如何与类型转换混合 我看到
  • 如何从 woocommerce 获取商品的库存数量?

    我在正确显示库存数量时遇到了一些问题 这是循环 span class price PREIS span class amount span span
  • 如何追踪内存峰值? (这是带有 p 的峰值,而不是带有 l 的峰值。)

    我有一个信息亭应用程序 它本质上显示了一堆幻灯片 其中包含各种信息 我最初是在一年前开始编写这个代码的 当时我刚开始从事 Objective C 和 iOS 开发 我发现我的代码风格现在比以前干净多了 而且我的经验也丰富了 所以我决定从头开
  • Angular2 传递函数作为组件输入不起作用

    我有一个以函数作为输入的组件 我已经从父级传递了这个函数 尽管调用了该函数 但该函数无法访问声明该函数的实例的依赖项 这是组件 Component selector custom element template val export cl
  • WCF ChannelFactory 与生成代理

    只是想知道当您可以使用 ChannelFactory 调用时 在什么情况下您更愿意从 WCF 服务生成代理 这样你就不必生成代理并担心服务器更新时重新生成代理了 Thanks 创建 WCF 客户端有 3 种基本方法 让 Visual Stu
  • 限制ManyToManyField的最大选择

    我试图限制模型记录在 ManyToManyField 中可以拥有的最大选择数量 在此示例中 有一个可以与区域相关的博客站点 在此示例中 我想将博客站点限制为只能有 3 个区域 这似乎是以前被问过 回答过的问题 但经过几个小时的探索后 我还没
  • Helm 图表之间的依赖关系是否应该反映微服务之间的依赖关系?

    给定以下服务方案及其依赖项 我想设计一组 Helm 图表 API Gateway calls Service A and Service C Service A calls Service B Service B calls Databas
  • ASP.NET Identity 2.0:如何重新哈希密码

    我正在 ASP NET 5 0 Web 应用程序中将用户从旧用户存储迁移到 ASP NET Identity 2 0 我有一种验证旧哈希值的方法 但我想在登录时将它们升级到 ASP NET Identity 2 0 哈希值 我创建了一个自定
  • 使用 MemoryStream 写入 XML

    我注意到有两种不同的方法将数据写入 XML 文件 为简洁起见 省略了错误处理 第一种方法是构建 XML 文档 然后将 XML 保存到文件中 using XmlWriter writer XmlWriter Create fileName w
  • 如何在makefile配方中设置环境变量?

    这是一个简化的 Makefile all for i 0 i lt 5 i do var var i echo var done echo var 我认为 var 的值是 0 1 2 3 4 但输出是 0 0 1 0 1 2 0 1 2 3
  • 如何实现CoreData记录的重新排序?

    我在 iPhone 应用程序中使用 CoreData 但 CoreData 不提供允许您对记录重新排序的自动方法 我想过使用另一列来存储订单信息 但是使用连续数字作为排序索引有问题 如果我正在处理大量数据 重新排序记录可能涉及更新排序信息上
  • Play 框架如何运作?

    我喜欢玩 与其他企业 Java 框架相比 它对于开发人员来说使用起来非常简单 但是 它是如何做到的呢 是什么让像 Java 这样的编译语言能够实现编辑 刷新循环 是什么让 Play 按其工作方式工作 Play 使用 Eclipse 编译器在
  • 在 PL/SQL 中打印记录字段

    如何在 PL SQL 中打印记录变量的所有字段 记录变量有很多字段 那么有没有比打印每个字段更好的方法呢 也尝试过动态sql但没有帮助 基于 Ollies 使用 dbms output 构建 但用于动态遍历光标 设置用于测试 create
  • ASP.NET MVC 3 - 在 jquery 对话框中编辑动态添加到模型集合的项目

    我是 MVC 新手 所以我不确定这里最好的方法是什么 我有一个视图模型 其中包含几个像这样的集合 public class MainViewModel public List
  • iPhone Web 应用程序可以使用相机吗?

    我有一个网络应用程序 我想拍照然后将它们上传到服务器 这可以通过网络应用程序完成吗 编辑 现在可以了 请参阅下面的答案 不可以 webapp 无法访问内部设备 尝试使用 PhoneGap 来缩小您的应用程序和内部设备之间的差距 但这将编译一
  • 通过列表和数组中的索引获取结构体项目

    当我使用数组时structs 例如 System Drawing Point 我可以通过索引获取项目并更改它 例如 此代码工作正常 Point points new Point new Point 0 0 new Point 1 1 new
  • 寻找曲线上的最佳权衡点

    假设我有一些数据 我想为其拟合参数化模型 我的目标是找到该模型参数的最佳值 我正在使用AIC BIC MDL奖励低误差模型的标准类型 但也会惩罚高复杂性的模型 可以说 我们正在为这些数据寻找最简单但最令人信服的解释 a la奥卡姆剃刀 根据
  • 如何在不删除 R 中存在 NA 的行的情况下执行聚类

    我有一个数据 其元素中包含一些 NA 值 我想做的是执行聚类而不删除行NA 存在的地方 我明白那个gower距离测量单位daisy允许这种情况 但为什么我下面的代码不起作用 我欢迎 雏菊 以外的其他选择 plot heat map with