【发布时间】:2016-02-28 18:14:45
【问题描述】:
我有一个数据框,每个“用户”包含 X 行,其中 X 在用户之间不是恒定的。我想做的是能够生成随机数来填充新列,但是对于每个“用户”,与该用户对应的所有行的随机数都是相同的。例如,数据可能如下所示:
user feature1 feature2
1 "A" "B"
1 "L" "L"
1 "Q" "B"
1 "D" "M"
1 "D" "M"
1 "P" "E"
2 "A" "B"
2 "R" "P"
2 "A" "F"
3 "X" "U"
... ... ...
我想生成一个可能看起来像这样的新列:
user feature1 feature2 new_rand
1 "A" "B" 0.183
1 "L" "L" 0.183
1 "Q" "B" 0.183
1 "D" "M" 0.183
1 "D" "M" 0.183
1 "P" "E" 0.183
2 "A" "B" 0.971
2 "R" "P" 0.971
2 "A" "F" 0.971
3 "X" "U" 0.302
... ... ...
我做的第一种方法基本上是使用s <- split(df, df$user),但数据框包含大量用户,我认为这可能是一种效率极低的方法。
非常感谢。
【问题讨论】:
-
这是split-apply-combine的另一个例子
标签: r dataframe split-apply-combine