RStudio:get_dist()错误消息“'x'必须是数字”是否遵循群集指南?

RStudio:get_dist()错误消息“'x'必须是数字”是否遵循群集指南?,r,import,dataset,cluster-analysis,k-means,R,Import,Dataset,Cluster Analysis,K Means,我对R很陌生,所以我一直在跟踪a,当我开始使用get_dist时,我一直在colMeansx中得到错误,na.rm=TRUE:'x'必须是数字。当我删除包含数据的列时,效果很好,但问题是,我希望保留这些标签,就像USARREST数据集中的状态标签一样 我发现了一个和我的问题非常相似的问题,但是没有对我有帮助的评论或答案。我看过一些帖子,比如提到尝试获取distx$x或as.numericas.characterx$x,但我必须承认,这项工作没有多大意义,我也没有成功地实施这些建议 我无法显示我的

我对R很陌生,所以我一直在跟踪a,当我开始使用get_dist时,我一直在colMeansx中得到错误,na.rm=TRUE:'x'必须是数字。当我删除包含数据的列时,效果很好,但问题是,我希望保留这些标签,就像USARREST数据集中的状态标签一样

我发现了一个和我的问题非常相似的问题,但是没有对我有帮助的评论或答案。我看过一些帖子,比如提到尝试获取distx$x或as.numericas.characterx$x,但我必须承认,这项工作没有多大意义,我也没有成功地实施这些建议

我无法显示我的完整数据集,但我可以提供head的结果,我注意到它与HEADUSAREST不同:

当我只导入包含数字数据的4列,并阅读指南时,一切正常,我可以查看集群结果。这里的问题是,我希望看到文档标识的可视化效果,否则在查看它们时,结果并没有多大意义


如果您有任何意见或建议,我们将不胜感激。

未经测试:您可以将这些标签指定为行名称:

图书馆管理员 母亲\u 2 \u ABS\u Summer\u 2019 \u clean%>%删除\u rownames%>%列\u到\u rownamesvar=…1


也许考虑改变第一个列名,这样上面更干净,更有可能工作。然后,它的格式与USARREST相同。

如果我得到了您要求的内容,那么如果完整数据帧包含字符,则无法在其上使用get\u dist。你可以尝试使用lappy或for循环。是的,当我注意到它在没有characters列的情况下工作时,我也这么认为。我可能应该在上班后编辑这篇文章,但我认为我的问题有两个:为什么get_dist在USARrest上工作,而在我看来,它的第一列似乎充满了字符,我如何用我的数据集复制USArrests的设置,使其以同样的方式工作?我不知道lapply的事,所以有机会我会去查的,谢谢。非常感谢,成功了!我添加了一个列名称,因为在我的电子表格中,它实际上没有列标题,我认为…1只是RStudio表达这一点的方式。
library(readxl)
Mother_2_ABS_Summer_2019_clean <- read_excel("~/.../Mother_2_ABS_Summer_2019_clean.xls", 
    range = "D1:H61")
head(Mother_2_ABS_Summer_2019_clean)

...1     Audience     Genre     Structure     Proofreading
<chr>    <dbl>        <dbl>     <dbl>         <dbl>
ABS-P_29_S31    2   2   2.0 3
ABS_40_S50  3   3   3.5 3
ABS_57_S47  2   2   2.0 3
ABS_86_S48  4   3   3.0 4
ABS_143_S42 2   2   2.0 3
ABS-P_152_S49   2   1   1.0 4

head(USArrests)

         Murder     Assault     UrbanPop     Rape
        <dbl>       <int>       <int>        <dbl>
Alabama 13.2    236 58  21.2
Alaska  10.0    263 48  44.5
Arizona 8.1 294 80  31.0
Arkansas    8.8 190 50  19.5
California  9.0 276 91  40.6
Colorado    7.9 204 78  38.7

dat1 <- na.omit(Mother_2_ABS_Summer_2019_clean)
dat1 <- scale(dat1)

distance <- get_dist(dat1)
fviz_dist(distance, gradient = list(low = "#00AFBB", mid = "white", high = "#FC4E07"))

Error in colMeans(x, na.rm = TRUE) : 'x' must be numeric