执行kproto之后的数据帧计算

时间:2020-05-14 08:37:51

标签: r dataframe

在对ggplot2的钻石数据集执行了k型原型设计之后,我想使用dt [i,j,by]命令从k型原型计算四个集群中每个集群的中位数价格。

# install.packages("clustMixType")
library(clustMixType);

# Check classes
sapply(diamonds, class);

#transform data frame
dat <- as.data.frame(diamonds);

#transform classes besides "numeric" and "factor"
non_numeric <- colnames(dat)[sapply(dat, class) != "numeric"];
dat[, non_numeric] <- data.table(sapply(dat[, non_numeric], as.factor), stringsAsFactors = TRUE);

# Check classes
sapply(dat, class);

# Perform k-prototypes
clustering <- kproto(x = dat, k = 4, verbose = TRUE, lambda = 2);

#checking total distance
clustering$tot.withinss

class(clustering)

# get the median price value for each final cluster obtained using a dt[i, j, by] command

clustering[clustering$cluster,median(clustering$price), keyby = "cluster"]

由于此时“集群”还不是数据帧(并且我没有设法将其强制转换为一个),所以我想知道如果要使用所描述的过程(使用dt [i,j ,通过]命令)。

有输入吗?

1 个答案:

答案 0 :(得分:0)

所以,我无法重现这个大例子,所以我只运行10列diammonds数据集,但是,也许这有一定帮助:

df1 <- data.frame(clustering[["centers"]][["price"]])
df2 <- data.frame(clustering[["data"]][["price"]])
df3 <-qpcR:::cbind.na(df1, df2)

如果(或何时)另一个人提出了更好的答案,我将删除我的,或者这没有帮助。

还请检查:软件包clprofiles(不要在我的R版本上运行)