Chi-square p value matrix in r

2019-05-26 11:54发布

问题:

Is there any way to find the chi-square p-value matrix in 'R' (a matrix with the p-values between the attributes)?

As an example, consider the the iris data set. I am looking for a matrix as follows:

|                | Sepal length | Sepal width | Petal length | Petal width | Species |
|----------------|--------------|-------------|--------------|-------------|---------| 
| Sepal length   |              |             |              |             |         |
| Sepal width    |              |             |              |             |         |
| Petal length   |              |             |              |             |         |
| Petal width    |              |             |              |             |         |
| Species        |              |             |              |             |         |

The elements of the matrix would be the chi square values for the (i,j) variables of the iris data set.

回答1:

If that is what you want considering only one of those columns is a categorical variable, Try this:

chisqmatrix <- function(x) {
  names = colnames(x);  num = length(names)
  m = matrix(nrow=num,ncol=num,dimnames=list(names,names))
  for (i in 1:(num-1)) {
    for (j in (i+1):num) {
      m[i,j] = chisq.test(x[,i],x[,j],)$p.value
    }
  }
  return (m)
}
mat = chisqmatrix(iris)


标签: r chi-squared