如何在 R 中生成分类分析表?

How to generate Classification Analysis tables in R?

至此我已经做了判别分析。我生成了后验概率、结构载荷和组质心。

我有 1 个分组变量:历史

我有 3 个判别变量:mhpg、运动和控制

这是目前的代码

td <- read.delim("H:/Desktop/TAB DATA.txt")
td$history<-factor(td$history)
fit<-lda(history~mhpg+exercise+control, data=td)
git<-predict(fit)
xx<-subset(td, select=c(mhpg, control, exercise))
cor(xx,git$x)
aggregate(git$x~history,data=td,FUN=mean)
tst<-lm(cbind(mhpg,control,exercise)~history,data=td)

基本上上面的代码就是为了判别分析

现在我想生成频率分类表和百分比分类表用于分类分析。

我尝试的代码(我从别人那里采样但无济于事)是:

td[6] <- git$class
td$V6<-factor(td$V6)
ftab<-table(td$history,dt$V6)
prop.table(ftab,1)

第 6 列是我的分组变量历史记录。

尝试将 td$V6 设为具有因子

的分类变量时出现以下错误
Error in `$<-.data.frame`(`*tmp*`, "V6", value = integer(0)) : 
  replacement has 0 rows, data has 50

任何人都可以引导我朝着正确的方向前进吗?我真的不知道为什么示例代码突然使用大写 V。下面是数据。第 6 列是分组变量 history。第 5 列是判别变量,控制。第 7 列是判别变量,练习。第 8 列是判别变量,mhpg.

1   3   6   0   2   0   4   2   4   3   0   6   0
1   4   5   0   0   1   2   5   4   6   1   4   1
1   4   4   0   2   1   1   8   6   7   1   2   1
2   4   9   0   2   1   0   6   7   8   1   4   1
2   4   3   1   4   1   2   6   6   6   1   4   1
2   5   7   0   1   1   3   6   7   7   1   1   1
2   5   8   0   1   1   1   6   6   7   1   5   1
2   6   7   0   1   1   0   9   8   8   1   3   1
2   6   4   1   2   1   2   5   7   6   1   5   1
3   4   10  0   1   1   1   8   5   7   1   4   1
3   4   4   0   1   1   1   8   9   8   1   3   1
3   4   7   0   1   0   1   6   3   4   0   8   0
3   5   4   1   4   1   2   5   4   5   0   5   1
3   5   7   0   2   1   1   7   5   7   1   4   1
3   5   6   0   0   1   0   10  9   10  1   3   1
3   5   6   0   2   1   1   9   10  9   1   2   1
3   5   5   1   2   1   2   5   4   4   0   9   1
3   6   2   1   4   1   3   6   4   4   0   7   1
3   6   3   1   2   1   2   7   5   5   0   6   1
3   6   5   1   2   1   2   6   7   6   1   6   1
3   6   7   1   3   1   3   5   4   4   0   8   1
3   6   5   1   2   1   2   5   3   3   0   10  1
3   7   8   0   0   1   1   7   6   7   1   5   1
3   7   5   1   2   1   1   5   5   5   0   6   1
3   7   6   1   2   0   4   3   1   2   0   9   0
3   8   6   1   2   1   1   6   5   5   0   7   1
3   8   9   0   0   1   0   7   5   6   1   3   1
4   5   5   1   2   1   1   5   6   5   0   6   1
4   5   5   1   2   0   2   3   3   4   0   8   0
4   6   8   0   0   1   2   8   7   7   1   4   1
4   6   6   1   3   1   2   5   4   4   0   7   0
4   6   5   1   3   1   2   4   3   2   0   8   0
4   7   2   0   3   0   4   3   6   6   1   4   1
4   7   4   1   3   0   3   4   2   1   0   7   0
4   7   7   1   3   0   4   4   5   5   0   7   0
4   7   6   1   3   0   3   3   6   5   0   4   0
5   7   5   1   1   0   4   1   7   4   0   7   1
5   8   1   1   3   0   3   4   8   7   1   5   0
5   8   3   1   3   0   3   4   5   6   1   5   1
5   9   4   1   4   0   3   2   7   5   0   5   1
5   9   6   1   4   0   3   4   6   6   1   7   0
5   10  4   1   3   0   3   4   2   3   0   6   0
1   1   8   0   1   0   2   5   6   5   0   6   1
1   2   7   0   1   1   1   7   8   9   1   5   0
1   2   7   0   1   1   0   7   5   6   1   5   1
1   3   5   0   1   1   2   7   8   8   1   5   0
2   3   3   1   2   1   2   6   7   6   1   6   0
2   3   6   1   1   1   2   7   6   4   0   7   0
2   4   6   1   3   1   3   6   5   5   0   6   0
2   5   4   1   3   1   3   4   4   3   0   6   0

尝试:

tbl <- table(td$history,git$class)
tbl
#     0  1
#   0 13  2
#   1  1 34

prop.table(tbl)
#        0    1
#   0 0.26 0.04
#   1 0.02 0.68

这些是分类表。

关于为什么你的"borrowed"代码没有运行,可能性太多了。

首先,如果您导入没有列名的数据集,R 将分配名称 Vn,其中 n 为 1、2、3 等。但如果是这种情况 none你的代码将 运行 因为你引用列 historycontrol 等。所以至少这些必须正确命名。

第二行中:

ftab<-table(td$history,dt$V6)

你指的是dt$V6。 AFAICT 没有 dt(这是打字错误吗?)。