Перетасовывание кадра данных с циклом в R - PullRequest
0 голосов
/ 07 июля 2019

Я работаю над перемешиванием с циклом в 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
...