r - 执行 kproto 后的数据帧计算
问题描述
在对来自 ggplot2 的钻石数据集执行 k 原型之后,我想使用 dt[i, j, by] 命令计算来自 k 原型的 4 个集群中的每一个的中位价格。
# 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, by]命令)。
有输入吗?
解决方案
所以,我无法重现这个大例子,所以我只运行了 10 列的 diammonds 数据集,但是,也许这会有所帮助:
df1 <- data.frame(clustering[["centers"]][["price"]])
df2 <- data.frame(clustering[["data"]][["price"]])
df3 <-qpcR:::cbind.na(df1, df2)
如果(或何时)另一个人提出更好的答案,我将删除我的答案,或者如果这没有帮助。
还要检查:包clprofiles
(不要在我的 R 版本上运行)
推荐阅读
- r - str_match 基于带有计数问题的向量
- javascript - 如何获取和显示 Draft-js 编辑器的某些块
- php - 当我在 laravel 5.8 中上传图片时,错误 403 被禁止
- javascript - 为颜色的十六进制表示添加不透明度
- javascript - 使用两个 CSS 文件的暗/亮模式
- angular-material - Angular CDK Overlay flexibleConnectedTo 未连接到原点
- django - 作为自动化测试的一部分,如何向本地 URL 发出请求?
- git - 无法通过“git add .”命令在 GIT 存储库中添加文件
- splunk - 是否有像 Toad 这样的 Splunk 工具允许在同一个编辑器中进行多个查询?
- c++ - C ++ Mixin - 初始化期间的动态绑定习语