Дана таблица данных с начальными и конечными координатами для последовательностей целых чисел:
set.seed(1)
df1 <- data.table(
START = c(seq(1, 10000000, 10), seq(1, 10000000, 10), seq(1, 10000000, 10)),
END = c(seq(10, 10000000, 10), seq(10, 10000000, 10), seq(10, 10000000, 10))
И вектор целых чисел:
vec1 <- sample(1:100000, 10000)
Как подсчитать количество целых чисел в vec1, которые находятся в начальной и конечной координатах каждой последовательности в df1? В настоящее время я использую цикл for:
COUNT <- rep(NA, nrow(df1))
for (i in 1:nrow(df1)){
vec2 <- seq(from = df1$START[i], to = df1$END[i])
COUNT[i] <- table(vec2 %in% vec1)[2]
print(i)
}
df1$COUNT <- COUNT
Однако данные и вектор, к которым я это применяю, очень велики? Кто-нибудь может предложить способ улучшить производительность?
Любая помощь будет принята с благодарностью!