我试图找到一种更有效的方法来逐步计算数据帧中的唯一数据点.
例如,我编写了以下代码:
df = matrix(c(1,2,3,3,4,5,1,2,4,4))
count = matrix(nrow = nrow(df),ncol=1)
for (i in 1:nrow(df)) {
count[i,1] = length(which(df[1:i,1] == df[i,1]))
}
Run Code Online (Sandbox Code Playgroud)
代码的目的是逐步计算特定值的每个实例,例如count列将具有以下结果:
1,1,1,2,1,1,2,2,2,3.
Run Code Online (Sandbox Code Playgroud)
到目前为止我编写的代码完成了这项工作,但上面的示例df只包含10个值.我试图执行此功能的实际数据框包含52,118 values,这需要花费大量时间.
有谁知道一种更有效的方法来执行上面的代码?