因此,我附加了数据框“ BreastCancer”,并且试图在“ Class”(变量“ BreastCancer”)中发现恶性或良性的病例数。
当我这样做
summary(Class)
返回
benign malignant
458 241
我通过这样做找到了总和:
res <- c(sum(Class == "malignant"),sum(Class == "benign"))
其中“ res”等于恶性和良性之和。
我不明白如何将恶性或良性除以“ res”
我尝试过
res/(Class = "malignant")
res/Class[2]
等
我需要帮助来访问基本的恶性和良性数值。我该怎么做?
res <- c(sum(Class == "malignant"),sum(Class == "benign"))
Class[2]/res
(Class = "malignant")/res
两者返回无关的结果
我得到“较长的对象长度不是较短的对象长度的倍数”作为对(Class = "malignant")/res
的返回,这完全没有道理
答案 0 :(得分:1)
因此,我的第一句话是,您应该避免将数据帧附加到工作空间。看起来很方便,但是通常会导致错误和混乱。
第二,在问题中包括从何处获取数据会很有帮助。这恰好是一个众所周知的例子,但是即使如此,我也不得不考虑一下。所以我在包 mlbench
中找到了它library(mlbench)
data(BreastCancer)
在您第一次尝试后,您可以执行以下操作:
x <- summary(BreastCancer$Class)
> x / sum(x)
benign malignant
0.6552217 0.3447783
但是在R中,通常有很多不同的方法来达到相同的结果。其他选项可能是
> prop.table(table(BreastCancer$Class))
benign malignant
0.6552217 0.3447783
或
t <- table(BreastCancer$Class)
> sum(BreastCancer$Class == "benign") / sum(t)
[1] 0.6552217
> sum(BreastCancer$Class == "malignant") / sum(t)
[1] 0.3447783