Я думал, что следующая проблема должна быть решена, или для ее выполнения должна существовать функция, но я не смог найти ответ.У меня есть вложенный цикл, который занимает строку от одного 3-х столбцов.фрейм данных и копирует его рядом с каждой из других строк, чтобы сформировать 6-столбец.фрейм данных (со всеми возможными комбинациями).Это прекрасно работает, но с набором данных среднего размера (800 строк) циклы занимают целую вечность, чтобы выполнить задачу.Я продемонстрирую на примере набора данных:
Sdat <- data.frame(
x = c(10,20,30,40),
y = c(15,25,35,45),
ID =c(1,2,3,4)
)
compar <- data.frame(matrix(nrow=0, ncol=6)) # to contain all combinations
names(compar) <- c("x","y", "ID", "x","y", "ID")
N <- nrow(Sdat) # how many different points we have
for (i in 1:N)
{
for (j in 1:N)
{
Temp1 <- Sdat[i,] # data from 1st point
Temp2 <- Sdat[j,] # data from 2nd point
C <- cbind(Temp1, Temp2)
compar <- rbind(C,compar)
}
}
Эти циклы обеспечивают именно тот вывод, который мне нужен для дальнейшего анализа.Любое предложение для векторизации этого раздела?