我想要一个与cumsum等效的函数,但不是加起来它计算到目前为止唯一值的数量.我可以为每个潜在的集合编写一个循环,但由于我的数据集有数百万的观察结果,这似乎会耗费时间.
例:
a <- c(1,3,2,4,1,5,2,3)
f(a)
[1] 1 2 3 4 4 5 5 5
Run Code Online (Sandbox Code Playgroud) 我有一个数据框donorInfo,有捐赠者信息:
id giftdate giftamt
002 2001-01-05 25.00
033 2001-05-08 50.00
054 2001-09-22 125.00
125 2001-11-05 40.00
042 2001-12-04 75.00
... ... ...
Run Code Online (Sandbox Code Playgroud)
我想创建一个列,显示截至该日期的唯一捐赠者ID的累计数量.我认为它是这样的:
donorInfo$numUnique <- apply/lapply (donorInfo, 1, FUN=nrow(unique(donorInfo$id)))
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用,我想知道如何补救.谢谢你的任何建议.
我有一个看起来像这样的矢量:
a <- c("A110","A110","A110","B220","B220","C330","D440","D440","D440","D440","D440","D440","E550")
Run Code Online (Sandbox Code Playgroud)
我想创建另一个基于a的另一个向量,它看起来像:
b <- c(1,1,1,2,2,2,3,4,4,4,4,4,4,5)
Run Code Online (Sandbox Code Playgroud)
换句话说,b应该为a的每个不同元素分配一个值(从1开始).