如何创建一个与R中其他列匹配的反向数列?

时间:2015-03-13 04:44:29

标签: r

我正在尝试在R中为这种特定情况编写一个函数或循环。以下是我手头的数据集的一部分:

sample  stand   tree    disk
3750 25 23  6
3751 25 23  6
3752 25 23  6
3753 25 23  6
3754 25 23  6
3755 25 23  7
3756 25 23  7
3757 25 23  7

我想要的输出是添加额外的列(rev):

sample  stand tree  disk rev
3750 25 23  6  5
3751 25 23  6  4
3752 25 23  6  3
3753 25 23  6  2
3754 25 23  6  1
3755 25 23  7  3
3756 25 23  7  2
3757 25 23  7  1

如果有人可以指导我,我将不胜感激。 谢谢

1 个答案:

答案 0 :(得分:1)

我会考虑使用" data.table"为此包装。您可以使用.N功能:

library(data.table)
as.data.table(mydf)[, rev := .N:1, by = .(disk)][]
#    sample stand tree disk rev
# 1:   3750    25   23    6   5
# 2:   3751    25   23    6   4
# 3:   3752    25   23    6   3
# 4:   3753    25   23    6   2
# 5:   3754    25   23    6   1
# 6:   3755    25   23    7   3
# 7:   3756    25   23    7   2
# 8:   3757    25   23    7   1

在这里,我假设您只想按" disk"进行分组,但您也可以按多列分组。