C将构造函数的结果绑定到R中的数据帧

C将构造函数的结果绑定到R中的数据帧,r,dataframe,R,Dataframe,我执行聚类分析,必须使用apcluster库 library(apcluster) ## create four synthetic 2D clusters cl1 <- cbind(rnorm(30, 0.3, 0.05), rnorm(30, 0.7, 0.04)) cl2 <- cbind(rnorm(30, 0.7, 0.04), rnorm(30, 0.4, .05)) cl3 <- cbind(rnorm(20, 0.50, 0.03), rnorm(20, 0.

我执行聚类分析,必须使用apcluster库

library(apcluster)

## create four synthetic 2D clusters
cl1 <- cbind(rnorm(30, 0.3, 0.05), rnorm(30, 0.7, 0.04))
cl2 <- cbind(rnorm(30, 0.7, 0.04), rnorm(30, 0.4, .05))
cl3 <- cbind(rnorm(20, 0.50, 0.03), rnorm(20, 0.72, 0.03))
cl4 <- cbind(rnorm(25, 0.50, 0.03), rnorm(25, 0.42, 0.04))
x <- rbind(cl1, cl2, cl3, cl4)

## run apcluster() (you may replace the Euclidean distance by a different
## distance, e.g. driving distance, driving time)
apres <- apcluster(negDistMat(r=2), x, q=0)
和错误

Error in apres$Clusters : $ operator not defined for this S4 class
我该怎么办

 [,1]           [,2]      cluster
  [1,] 0.3671142 0.6204475      2

第一个问题是,
apres
不是S3类对象,使用
$
是行不通的。请参见
apres
,您将看到
@
以类似方式使用。特别是,为了得到结果集群,您需要

cls <- apres@clusters
那么我们可以做你尝试过的事

head(cbind(x, cluster = as.integer(names(clsNm))), 2)
#                          cluster
# [1,] 0.2526693 0.6764543       1
# [2,] 0.2781545 0.6774726       1

第一个问题是,
apres
不是S3类对象,使用
$
是行不通的。请参见
apres
,您将看到
@
以类似方式使用。特别是,为了得到结果集群,您需要

cls <- apres@clusters
那么我们可以做你尝试过的事

head(cbind(x, cluster = as.integer(names(clsNm))), 2)
#                          cluster
# [1,] 0.2526693 0.6764543       1
# [2,] 0.2781545 0.6774726       1