在R语言中,对多维数据进行统计有比较简便的方法,实验过程:
阴影部分的代码测试与本主题无关。
1、构造测试数据
> a<-c("yes","no","yes")
> b<-c("no","yes","yes")
> c<-c("yes","yes","no")
> d<-c("no","yes","yes")
> e<-data.frame(a,b,c,d)
> e
a b c d
1 yes no yes no
2 no yes yes yes
3 yes yes no yes
> str(e)
'data.frame': 3 obs. of 4 variables:
$ a: Factor w/ 2 levels "no","yes": 2 1 2
$ b: Factor w/ 2 levels "no","yes": 1 2 2
$ c: Factor w/ 2 levels "no","yes": 2 2 1
$ d: Factor w/ 2 levels "no","yes": 1 2 2
> e<-data.frame(a,b,c,d,stringAsFactor=FALSE)
> e
a b c d stringAsFactor
1 yes no yes no FALSE
2 no yes yes yes FALSE
3 yes yes no yes FALSE
注意:可以看到,数据框参数输错直接当成一列向量输出,而不会报错。
> e<-data.frame(a,b,c,d,stringsAsFactors = FALSE)
> e
a b c d
1 yes no yes no
2 no yes yes yes
3 yes yes no yes
> str(e)
'data.frame': 3 obs. of 4 variables:
$ a: chr "yes" "no" "yes"
$ b: chr "no" "yes" "yes"
$ c: chr "yes" "yes" "no"
$ d: chr "no" "yes" "yes"
2、进行行统计
> rowSums(e=="Yes")
[1] 0 0 0
可以看到,字符串匹配是区分大小写的。
> rowSums(e=="yes")
[1] 2 3 3
输出正确结果。
3、进行列统计
> colSums(e=="yes")
a b c d
2 2 2 2