我正在使用R中的循环进行重排。我想将数据重排5次。结果将分别保存a和b数据的每个回合信息保存在文件中。
df <- data.frame(a=1:5, b=6:10, c=10:15, d=15:20)
q <- c("w", "x", "y", "z")
row.names(df) <- q
df1 <- df
a2 <- list()
b2 <- list()
for(i in 1:5){
for (i in 1:nrow(df))
df1[i,] <- df[i,order(runif(length(df[i,])))]
a <- data.frame(N_sum = apply(df1[,1:2], 1, sum) )
a$divide_by_NO<- a$N_sum/12
a$log_value <- log(a$divide_by_NO,2)
a$i <- i
a2[[i]] <- a
b<- data.frame( P_sum = apply(df1[,3:4], 1, sum))
b$divide_by_NO<- b$P_sum/6
b$log_value <- log(b$divide_by_NO,2)
b$i <- i
b2[[i]] <- b
}
a <- do.call(rbind,a2)
b <- do.call(rbind,b2)
write.csv(a,"a_log_data.csv", row.names = TRUE, sep=",", quote = FALSE)
write.csv(b,"b_log_data.csv", row.names = TRUE, sep=",", quote = FALSE)
但是该编程无法正常工作。需要什么改进?
我的预期结果是:
N_sum divide_by_NO log_value loop
w 11 0.916 -0.12 1
x 14 1.166 0.22 1
y 4 0.333 -1.58 1
z 8 0.666 -0.58 1
w 12 1 0 2
x 2 0.166 -2.59 2
y 10 0.833 -0.26 2
z 22 1.833 0.87 2