Я застрял с проблемой, но я не могу найти удовлетворительных ответов в Интернете.Я хотел бы оценить data.frame (также data.table, это хорошо для меня), используя векторы start: end.Пример пояснит, что я спрашиваю.
Предположим, у меня есть data.frame, подобный следующему:
df <- data.frame(col_1 = rep(0, 3), col_2 = rep(0, 3), col_3 = rep(0, 3), col_4 = rep(0,3))
df
col_1 col_2 col_3 col_4
1 0 0 0 0
2 0 0 0 0
3 0 0 0 0
И предположим, у меня есть два вектора:
indexesStart <- c(1, 2, 1)
indexesEnd <- c(2, 4, 3)
Я хотел бы повысить до 1 все значения в диапазоне, указанном векторами по строкам.Вывод должен быть следующим:
col_1 col_2 col_3 col_4
1 1 1 0 0
2 0 1 1 1
3 1 1 1 0
Я пробовал что-то вроде этого:
df[ , indexesStart:indexesEnd] <- 1
Но это не работает, просто нужно indexesStart[1]:indexesEnd[1]
и повторить это для всех строк,
Я должен избегать циклов цикла , потому что мой реальный фрейм данных содержит миллионы строк и он слишком медленный.Любая помощь приветствуется (решение data.table
будет еще лучше)
Спасибо