rm(list=ls())
data <- read.table("MS_identified_information.txt",header = T,sep = "\t",quote="",na.strings = "",row.names = 1,comment.char = "")
name1 <- paste("H1299",sep = "_",c(1:3))
name2 <- paste("Metf",sep = "_",c(1:3))
name3 <- paste("OEMetf",sep = "_",c(1:3))
name <- data.frame(name1,name2,name3)
mean.data=data.frame(row.names(data))
for (i in 1:3){
tmp <- subset(data,select = as.vector.factor(name[,i])) #筛选特定的样本
mean_ <- as.data.frame(apply(tmp, 1, mean)) #行求平均值
//assign()功能就是对变量进行赋值如i=1时,df1=mean_
//把三次结果组合起来
mean.data <- cbind.data.frame(mean.data,assign(paste("df", i, sep=""), mean_))
//这里没有体现出变量,实际上生成了df1,df2,df3结果
}
colnames(mean.data) <- c("ID","H1299","Metf","OEMetf")
write.table(mean.data,file="MS_mean.xls",row.names = FALSE,sep = "\t",na="")
R语言for循环批量生成变量,并且赋值
最新推荐文章于 2024-04-08 15:39:29 发布