Vấn đề này có vẻ tầm thường nhưng tôi ở cuối trí thông minh sau nhiều giờ đọc.Tạo một danh sách véc tơ có chiều dài chạy của vector gốc với cùng độ dài như vector gốc
Tôi cần tạo một vectơ có độ dài bằng với vectơ đầu vào liệt kê cho từng giá trị của vectơ đầu vào tổng số cho giá trị đó. Vì vậy, bằng cách ví dụ, tôi muốn tạo ra cột cuối cùng của dataframe này:
> 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
Tôi nhận ra điều này có thể được thực hiện theo hai cách, hoặc bằng cách sử dụng độ dài chạy của cột đầu tiên, hoặc nhóm cột thứ hai sử dụng đầu tiên và áp dụng tối đa.
Tôi đã thử cả hai tapply:
> tapply(df$transaction.count, df$customer.id, max)
Và RLE:
> rle(df$customer.id)
Nhưng cả hai quay trở lại một vector có độ dài ngắn hơn so với bản gốc:
[1] 4 2 3 1
Bất kỳ sự giúp đỡ lòng biết ơn được chấp nhận!
Cảm ơn rất nhiều cho câu trả lời tuyệt vời! Tất cả các câu trả lời đều có hiệu quả. –