Here is correspondence analysis:

  #1.读取列联表到数据框
  vdata<-read.csv("http://data.galaxystatistics.com/blog_data/demolaolinhua.csv",header=T,row.names = 1)

  #2.加载MASS包,用corresp函数进行对应分析
  library(MASS)
  cp<-corresp(vdata,nf=2)
  cp
## First canonical correlation(s): 0.29614629 0.08462696 
## 
##  Row scores:
##              [,1]        [,2]
## 很好   -0.8598235  0.90764251
## 好     -0.4243279  0.31560800
## 一般   -0.3176986  0.02177613
## 差      1.1427620 -1.80803262
## 很差    4.6633068  4.82861892
## 没回答  4.0033447  1.24147941
## 
##  Column scores:
##                [,1]       [,2]
## 完全自理 -0.5368034  0.2556804
## 部分自理  0.7824802 -2.2683088
## 不能自理  2.4804060  1.2965027
  #3.绘制二维图表
  rgx<-range(cp$rscore[,1],cp$cscore[,1])+c(-0.5,0.5)
  rgy<-range(cp$rscore[,2],cp$cscore[,2])+c(-0.5,0.5)
  plot(cp$rscore,pch=20,cex=5,col='red',xlim=rgx,ylim=rgy,xlab="Dimension 1", ylab="Dimension 2")
  text(cp$rscore-0.2,rownames(cp$rscore))
  points(cp$cscore,pch=20,cex=5,col='darkgreen')
  text(cp$cscore-0.2,rownames(cp$cscore))
  abline(v=0,h=0,lty=3)