【发布时间】:2017-06-27 22:26:15
【问题描述】:
我想使用 dplyr 比较分组 data.frame 中的值,并创建一个虚拟变量或类似的东西,指示哪个更大。想不通!
这是一些可重现的代码:
table <- structure(list(species = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("Adelophryne adiastola",
"Adelophryne gutturosa"), class = "factor"), scenario = structure(c(3L,
1L, 2L, 3L, 1L, 2L), .Label = c("future1", "future2", "present"
), class = "factor"), amount = c(5L, 3L, 2L, 50L, 60L, 40L)), .Names = c("species",
"scenario", "amount"), class = "data.frame", row.names = c(NA,
-6L))
> table
species scenario amount
1 Adelophryne adiastola present 5
2 Adelophryne adiastola future1 3
3 Adelophryne adiastola future2 2
4 Adelophryne gutturosa present 50
5 Adelophryne gutturosa future1 60
6 Adelophryne gutturosa future2 40
我会将 df 按species 分组。
我想创建一个新列,可以是increase_amount,其中每个“未来”的金额都与“现在”进行比较。当值增加时我可以得到 1,当它减少时我可以得到 0。
我一直在尝试使用 for 循环来抛出每个物种,但 df 包含超过 50,000 个物种,而且我必须重新执行操作的时间太长了......
有人知道方法吗? 非常感谢!
【问题讨论】: