1

我有一个像这样的差距的数据框:

           Var1    Var2    Var3
1            NA      NA      NA
2            NA      NA      NA
3            NA      NA      NA
4            NA 0.06703      NA
5            NA 0.08639      NA
6            NA 0.19023 0.02322
7            NA 0.31764 0.08058
8            NA 0.44426 0.15081
9            NA 0.37529 0.29595
10           NA 0.40029 0.29274
11           NA 0.33828 0.39168
12      0.01595 0.31432 0.43192
13      0.05217 0.28560 0.48150
14      0.07196 0.32588 0.56065
15      0.08771 0.26301 0.68131

当我运行时,melt(),我删除了 NA 单元格: melt(df, na.rm = TRUE),但我想添加一个新列,其中包含每个值在其variable组中的位置的行号。

所以我的结果是这样的:

variable    value
    Var1   0.01595
    Var1   0.05217
    Var1   0.07196
    Var1   0.08771
    Var2   0.06703
    Var2   0.08639
...etc

我希望它们看起来像这样:

variable    value    index
    Var1   0.01595   1
    Var1   0.05217   2
    Var1   0.07196   3
    Var1   0.08771   4
    Var2   0.06703   1
    Var2   0.08639   2
...etc

在熔化过程之前、之中或之后生成这些内部行号的最佳方法是什么?

4

1 回答 1

3

看看这个关于自动增加队列计数的问题。我认为这就是你想要做的。如果是这样,可能最容易(至少对我而言)将其作为与 plyr 的单独操作来执行。

这是要点:

ddply(df, .(variable), function(x) data.frame(x, NewID=1:nrow(x))) 
于 2010-03-03T17:31:26.167 回答