【发布时间】:2018-01-31 16:44:08
【问题描述】:
我想创建一个包含新变量(最好是字母)的新列,以便稍后计算每个集合的频率。
假设我有一个名为 datatemp 的数据框,类似于:
datatemp = data.frame(colors=rep( c("red","blue"), 6), val = 1:6) colors val 1 red 1 2 blue 2 3 red 3 4 blue 4 5 red 5 6 blue 6 7 red 1 8 blue 2 9 red 3 10 blue 4 11 red 5 12 blue 6
我可以看到我独特的行集,其中 colors 和 val 列一起具有相同的输入,例如:
unique(datatemp[c("colors","val")]) colors val 1 red 1 2 blue 2 3 red 3 4 blue 4 5 red 5 6 blue 6
我真正想做的是在同一个数据框中创建一个新列,其中每个唯一的行集都有一个级别,例如:
colors val freq 1 red 1 A 2 blue 2 B 3 red 3 C 4 blue 4 D 5 red 5 E 6 blue 6 F 7 red 1 A 8 blue 2 B 9 red 3 C 10 blue 4 D 11 red 5 E 12 blue 6 F
我知道这是非常基本的,但是,对于庞大的数据集,我想不出一个有用的想法。
所以让问题更清楚,我在下面给出所需输出的另一种表示:
colA colB newcol 10 11 A 12 15 B 10 11 A 13 15 C
新列中的值应基于其前两列的唯一性。
【问题讨论】: