【问题标题】:Error in UseMethod("SK") : no applicable method for 'SK' applied to an object of class "character"UseMethod(“SK”)中的错误:没有适用于“SK”的适用方法应用于“字符”类的对象
【发布时间】:2021-10-09 02:15:22
【问题描述】:

我正在使用 ScottKnott 包通过以下代码对某些数据执行一些分析:

 Data <- read.csv('hf dataset.csv',header=TRUE)
 sk1 <- with(Data,
            SK(x=Data$classifier,
               y=Data$kappa,
               model='y ~ x',
               which='x'))

代码运行良好。这是我以前使用上面的代码的输出示例:

但现在我明白了

UseMethod("SK") 中的错误:没有适用于 'SK' 的方法应用于 “字符”类的对象

使用相同的代码和相同的数据。 这是数据的 sn-p:

str(Data)
'data.frame':   1200 obs. of  4 variables:
 $ classifier: chr  "U-KNNCFS" "U-KNNCFS" "U-KNNCFS" "U-KNNCFS" ...
 $ kappa     : num  0.524 0.831 0.561 0.4 0.615 ...
 $ acc       : num  80 93.3 83.3 73.3 83.3 ...
 $ auc       : num  0.762 0.889 0.754 0.7 0.8 ...

我将 Data$classifier 列从“chr”转换为“Factor”,但使用“Factor”而不是“character”仍然出现相同的错误。有人可以帮忙吗?我一直试图找出问题 3 天,但我被困在这里。

这是一个小样本数据:

structure(list(classifier = c("U-KNNCFS", "U-KNNCFS", "U-KNNCFS", 
"U-KNNCFS", "U-KNNCFS", "U-KNNCFS", "U-KNNCFS", "U-KNNCFS", "U-KNNCFS", 
"U-KNNCFS", "U-KNNCON", "U-KNNCON", "U-KNNCON", "U-KNNCON", "U-KNNCON", 
"U-KNNCON", "U-KNNCON", "U-KNNCON", "U-KNNCON", "U-KNNCON", "U-KNNIG4", 
"U-KNNIG4", "U-KNNIG4", "U-KNNIG4", "U-KNNIG4", "U-KNNIG4", "U-KNNIG4", 
"U-KNNIG4", "U-KNNIG4", "U-KNNIG4"), kappa = c(0.523809524, 0.830508475, 
0.561403509, 0.4, 0.615384615, -0.216216216, 0.7, 0.368421053, 
0.7, 0.449367089, 0.307692308, 0.150943396, 0.206349206, 0.052631579, 
0.210526316, -0.054054054, 0.368421053, 0.108108108, 0.307692308, 
-0.080229226, 0.523809524, 0.830508475, 0.561403509, 0.4, 0.615384615, 
-0.216216216, 0.7, 0.368421053, 0.7, 0.449367089), acc= c(80, 
93.33333333, 83.33333333, 73.33333333, 83.33333333, 50, 86.66666667, 
73.33333333, 86.66666667, 79.31034483, 70, 70, 66.66666667, 60, 
66.66666667, 56.66666667, 73.33333333, 63.33333333, 70, 55.17241379, 
80, 93.33333333, 83.33333333, 73.33333333, 83.33333333, 50, 86.66666667, 
73.33333333, 86.66666667, 79.31034483), auc = c(0.761904762, 
0.888888889, 0.753968254, 0.7, 0.8, 0.4, 0.85, 0.675, 0.85, 0.697222222, 
0.658730159, 0.563492063, 0.603174603, 0.525, 0.6, 0.475, 0.675, 
0.55, 0.65, 0.461111111, 0.761904762, 0.888888889, 0.753968254, 
0.7, 0.8, 0.4, 0.85, 0.675, 0.85, 0.697222222)), row.names = c(NA, 
30L), class = "data.frame")

【问题讨论】:

  • 你更新了SK包吗? SK 的帮助使用了稍微不同的语法。
  • 如果您使用with 函数,则不需要Data$。在应用函数时尝试使用ScottKnott::SK
  • @MartinGal 我更新了 R
  • @RonakShah 我已经在没有 Data$ 的情况下尝试过,但它没有用。 ScottKnott::SK 也不工作
  • 请使用dput(head(Data, 30))添加一小部分数据。

标签: r


【解决方案1】:

我查看了ScottKnott 包和SK 帮助。未描述 model 参数。你的代码应该运行

library(ScottKnott)

sk1 <- with(Data, 
            SK(kappa ~ classifier,
               which='classifier')
            )

返回

#> Results
#> Means G1 G2
#> U-KNNIG4  0.49  a   
#> U-KNNCFS  0.49  a   
#> U-KNNCON  0.16     b
#> 
#> Sig.level
#> 0.05
#> 
#> Statistics
#> lambda chisq dfchisq pvalue evmean dferror
#> Clus 1     13   7.2     2.6 0.0038 0.0063      27
#> Clus 2      0   5.5     1.8 1.0000 0.0063      27
#> 
#> 
#> Clusters
#> #################  Cluster  1  ################
#> {G1}: U-KNNIG4 U-KNNCFS
#> {G2}: U-KNNCON
#> #################  Cluster  2  ################
#> {G1}: 0
#> {G2}: NA

【讨论】:

  • 谢谢你的帮助,我会接受这个作为答案
猜你喜欢
  • 1970-01-01
  • 2019-04-07
  • 2023-04-06
  • 1970-01-01
  • 2019-09-12
  • 2022-12-15
  • 2023-01-22
  • 2020-12-05
  • 1970-01-01
相关资源
最近更新 更多