我的数据框有这样的间隙:
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
在熔化过程之前,期间或之后生成这些内部行号的最佳方法是什么?
答案 0 :(得分:3)
查看at this previous question关于自动递增的群组计数。我认为这就是你想要做的。如果是这样,可能最容易(至少对我而言)与plyr进行单独的操作。
这是要点:
ddply(df, .(variable), function(x) data.frame(x, NewID=1:nrow(x)))