Эта проблема кажется тривиальной, но я нахожусь в конце концов после нескольких часов чтения.
Мне нужно сгенерировать вектор такой же длины, что и входной вектор, который перечисляет для каждого значения входного вектора общее количество для этого значения. Итак, в качестве примера, я бы хотел сгенерировать последний столбец этого фрейма данных:
> df
customer.id transaction.count total.transactions
1 1 1 4
2 1 2 4
3 1 3 4
4 1 4 4
5 2 1 2
6 2 2 2
7 3 1 3
8 3 2 3
9 3 3 3
10 4 1 1
Я понимаю, что это можно сделать двумя способами: либо с использованием длин серий первого столбца, либо сгруппировав второй столбец с использованием первого и применив максимум.
Я пробовал оба варианта:
> tapply(df$transaction.count, df$customer.id, max)
И рле:
> rle(df$customer.id)
Но оба возвращают вектор более короткой длины, чем оригинал:
[1] 4 2 3 1
Любая помощь с благодарностью принята!