如果只取某一列中相对应的分类数据框有很多方法实现,变量名==“某一分类”、或者使用subset函数,但是如果涉及多个变量,而且需要对每一个变量的每一个分类取数据框,然后再针对提取的相应数据框进行计算,如何批量实现?
下面是我尝试编写代码,但是无法得到想要的结果,输出的文件为只有变量名的空数据集。
- #使用R软件中自带的Titanic数据库为例测试
- var.table<-lapply(Titanic,table)
- z<-sapply(var.table,function(x) names(x))
- z1<-as.vector(z)
- z2<-unlist(z1)
- z3<-as.data.frame(z2)
- z4<-as.vector(z3$z2) #以上代码将每一个变量的分类提取到同一个向量中
- var.name<-as.vector(colnames(Titanic[,c(2,3)])) #便于测试,这里仅用Sex,Age两个变量作为测试变量
- for (i in var.name){
- for (j in var.table){
- Titanic_ij<-subset(Titanic,i==j) #运用两个for循环,对变量名和相应的分类进行判别,借助subset函数获取想要的数据框
- write.csv(Titanic_ij,file="C:/Users/Administrator/Desktop/Titanic_ij.csv") #仅为测试,将获得的最后一个数据框输出,这里也可以加入其它的针对每一个获得的数据框的分析
- }
- }