代码之家  ›  专栏  ›  技术社区  ›  SimpleJ

无法使用Rpy2访问具有INSS值的kmeans

  •  0
  • SimpleJ  · 技术社区  · 4 年前

    我正在尝试将一些旧的Python代码从Rpy1更新为Rpy2,但有几行代码无法正常运行:

    result = rpy.r.kmeans(datnorm, cls, kmeans_iterations, kmeans_nstart)
    sse = sum(result['withinss'])
    

    我将Rpy依赖项更新为Rpy2,并重构此代码以使用Rpy2 importr 要加载R stats模块,请执行以下操作: kmeans 作用这是更改后代码的外观:

    result = rstats.kmeans(matnorm, cls, kmeans_iterations, kmeans_nstart)
    sse = sum(result['withinss'])
    

    当此代码运行时,出现以下错误:

    TypeError: Indices must be integers or slices, not <class 'str'>
    

    我理解这是说我不能使用字符串作为索引,因为 K均值 withinss 如果结果不是dict,则返回值?

    0 回复  |  直到 4 年前
        1
  •  1
  •   lgautier    4 年前

    .rx2() 可能就是你想要的:

    result.rx2('withinss')
    

    (见 https://rpy2.github.io/doc/v3.4.x/html/vector.html#extracting-r-style