У меня есть векторы в R, содержащие много 0 и несколько ненулевых чисел. Каждый вектор начинается с ненулевого числа.Как заполнить значения в векторе?
< Например 1,0,0,0,0,0,2,0,0,0,0,0,4,0,0,0>
Я хотел бы установить все нули равны самому последнему ненулевому числу.
I.e. этот вектор станет < 1,1,1,1,1,1,2,2,2,2,2,2,4,4,4,4>
Мне нужно сделать это примерно за 100 векторов, содержащих около 6 миллионов записей. В настоящее время я использую цикл for:
for(k in 1:length(vector){
if(vector[k] == 0){
vector[k] <- vector[k-1]
}
}
Есть ли более эффективный способ сделать это?
Спасибо!
вектора последовательным кроме нулей? Если это так, я думаю, вы сможете использовать 'cummax'. то есть: 'vector <- cummax (vector)' – rosscova
Я бы предпочел в основном первый, но на самом деле просто увеличил его как хороший момент. Я специально не голосовал, но я думаю, что это отличное предложение. – rosscova
Если вы наведите указатель на стрелку вверх, в нем говорится: «Этот комментарий добавляет что-то полезное для сообщения». Я думаю, что это именно то, что это значит. Возможно, не полный ответ, но добавляет что-то полезное. – G5W