У меня очень большой набор данных, и мне нужен скрипт, который может работать быстрее, чем этот. Я должен составить все комбинации (более 50.000.000) и усреднить множество переменных. Вот мое решение до сих пор:
###DATA###
library(data.table)
data <- data.frame(replicate(10,sample(1:10,9,rep=TRUE)))
row.names (data) <- c("row1", "row2", "row3", "row4", "row5", "row6", "row7", "row8", "row9")
setDT(data, keep.rownames = TRUE)[]
###START###
data <- as.data.frame(data)
row_ids <- expand.grid(as.character(data$rn),as.character(data$rn))
New_data <- paste(row_ids[,1],row_ids[,2],sep="_X_")
for (i in 2:ncol(data)){
vals <- expand.grid(data[,i],data[,i])
val.means <- rowMeans(vals)
New_data <- c(New_data,val.means)
}
dim(New_data)=c(nrow(row_ids),(ncol(data)))
head(New_data[1:10])
New_data <- as.data.frame(New_data)
###END###