我想创建一个名为" Factor"的变量。它基于两个变量:名称和日期。我想在同一天为同一个人分配相同的号码,同时在不同的日子为同一个人分配不同的号码。
例如,
N in [1..n]
我理解如何基于1个变量创建关卡(这是我下面的示例代码中的名称)但是如何扩展代码以便它也需要" day"考虑到创造水平?
// High Level Psuedo Code
var nCr[][];
var p[]; // (1+x)^0, (1+x)^1 ... (1+x)^n
var b[]; // (1+x)^0, (1+x)^(n-1), (1+x)^2(n-2)...
var power[n][i] // (1+x)^i(n-i), power[max_n][x] = b[] actually
var A[] // main problem!
Precompute nCr[][]; // O(n^2)
Precompute p[]; // O(n lg n)
Precompute b[]; // O(n lg n)
Precompute power[n][i] {
// O(n^2)
for all x, for all i
power[x][i] = power[x+1][i]/p[i]
}
Compute A using all those precompute arrays, O(n^2)
答案 0 :(得分:2)
作为@A。 Webb提到您可以使用interaction
为多个变量创建级别。
as.numeric(interaction(df$Day, df$Name))
#[1] 1 1 2 3 4 4