我正在尝试在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
如果有人可以指导我,我将不胜感激。 谢谢
答案 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"进行分组,但您也可以按多列分组。