Saya memiliki bingkai data di mana dua kolom menandai awal dan akhir wilayah yang perlu saya manipulasi di bingkai data lain. Daripada menerapkan for, saya memutuskan untuk membuat vektor logis dengan baris yang saya minati
df <- data.frame(b=c(7,25,32,44),e=c(11,27,39,48),n=c('a','b','c','d'))
logint <- rep(F,50)
log_vec <- apply(df[,c('b','e')],1, function(x){logint[x['b']:x['e']] <- T;return(logint)})
Namun, hasilnya berupa matriks dengan satu kolom untuk setiap baris df
. Saya tahu saya bisa menyelesaikan ini dengan
log_vec <- Reduce(`|`,as.data.frame(log_vec))
tetapi jika jumlah baris dalam df
terlalu besar, memori tidak cukup untuk mengalokasikan matriks hasil penerapan.
Apakah Anda memiliki solusi yang lebih baik?
Terima kasih!