daisy 出现“无效类型字符”错误

问题描述 投票:0回答:2

我有一个包含混合数据类型(整数、字符和逻辑)的数据框,我试图将其与 daisy 进行聚类。

我正在使用:

gower_dist <- daisy(relchoice, metric = "gower")

并得到:

Error in daisy(relchoice, metric = "gower") : 
invalid type character for column numbers 3, 4, 5, 7, 8, 10, 13, 14, 15, 16, 
21, 29, 31, 32invalid type character for column numbers 3, 4, 5, 7, 8, 10, 
13, 14, 15, 16, 21, 29, 31, 32invalid type character for column numbers 3, 
4, 5, 7, 8, 10, 13, 14, 15, 16, 21, 29, 31, 32invalid type character for 
column numbers 3, 4, 5, 7, 8, 10, 13, 14, 15, 16, 21, 29, 31, 32invalid type 
character for column numbers 3, 4, 5, 7, 8, 10, 13, 14, 15, 16, 21, 29, 31, 
32invalid type character for column numbers 3, 4, 5, 7, 8, 10, 13, 14, 15, 
16, 21, 29, 31, 32invalid type character for column numbers 3, 4, 5, 7, 8, 
10, 13, 14, 15, 16, 21, 29, 31, 32invalid type character for column numbers 
3, 4, 5, 7, 8, 10, 13, 14, 15, 16, 21, 29, 31, 32invalid type character for 
column numbers 3, 4, 5, 7, 8, 10, 13, 14, 15, 16, 21, 29, 31, 32invalid type 
character for column numbers 3, 4, 5, 7, 8, 10, 13, 14, 15, 16, 21, 29, 31, 
32

希望得到一些帮助。

cluster-analysis r-daisy
2个回答
7
投票

我能够通过将分类字段转换为因子数据类型来解决这个问题,例如:

df$job <- as.factor(df$job)

0
投票

解决多个有问题的列的快速方法是确保声明数据框时将 stringsAsFactors 设置为 TRUE:

relchoice <- data.frame(..., stringsAsFactors = TRUE)
gower_dist <- daisy(relchoice, metric = "gower")

data.frame() 的 stringsAsFactors 参数默认在 R 版本 4.0.0+ 中设置为 FALSE,因此需要专门设置。

© www.soinside.com 2019 - 2024. All rights reserved.