Я немного почитал об увеличении производительности для циклов в r, но я все еще придерживаюсь одного приема ~ 140 секунд.Увеличьте производительность R для циклов после предварительного распределения структур данных
Начну с кодом:
matrix <- matrix(NA, length(register[,1]), length(AK), dimnames = list(register[,1], AK))
data.cleaned <- data[data$FO %in% register[,1],]
rownames(data.cleaned) <- paste(1:nrow(data.cleaned))
for (i in 1 : nrow(data.cleaned)) {
for (j in 1 : nrow(matrix)) {
if (data.cleaned$FO[i] == rownames(matrix)[j]) {
for (k in 1 : ncol(matrix)) {
if (data.cleaned$AK[i] == colnames(matrix)[k])
{matrix[j,k] <- 1}
}
}
}
}
К сожалению, я не могу поставить любой воспроизводимый пример. Этот очищенный data data frame - это кадр, который включает около 11000 строк. В каждой строке есть наблюдение за FO (основная категория) и для AK (подкатегория для FO) (две разные переменные).
Цель - заполнить матрицу [i, j] с 1, если в одной строке есть соответствующее наблюдение за ФО и АК.
Имеет ли это смысл. Просьба также прокомментировать, если мне нужно указать или могу написать пост в более ясном/лучшем способе
Для петель сами не очень производительный в R , попробуйте заменить так много из них векторизованными функциями и т. д. – snaut
Сколько секунд требуется код из моего ответа на ваши данные? – jogo