gpt4 book ai didi

r - 当值从一年增加到下一年时,将指示变量添加到长数据框

转载 作者:行者123 更新时间:2023-12-01 00:28:30 25 4
gpt4 key购买 nike

我有一个长数据框,包含三列 fyearticdcvt(用于财政年度、代码和可转换债务总额).大约有 18 个财政年度和几千个代码。我想添加一个指示变量,每当 dcvt 从一年上升到下一年时,它就是一个。

我尝试了 ddply,但是我丢失了 fyear 列并且不确定如何取回它。

library(plyr)
temp <- data.frame(fyear = rep(1992:2009, 10), tic = rep(letters[1:10], each = 18), dcvt = rnorm(180, 200, 10))
my.fun <- function(x) x <- c(0, ifelse(tail(x, -1) - head(x, -1) > 0, 1, 0))
temp2 <- ddply(temp, "tic", colwise(my.fun, "dcvt"))

我还尝试使用 reshape2 包进行宽范围转换,然后运行 ​​for 循环,当然,这花了很长时间。

有什么方法可以快速做到这一点?我应该制作一个宽的 zoo 对象然后使用 diff 吗?如果可以的话,我想避免通过时间序列。谢谢!

最佳答案

在 dplyr 中使用变换有时对我们有很大帮助:

ddply(temp, .(tic), transform, dcvt=c(0, diff(dcvt)>0))

关于r - 当值从一年增加到下一年时,将指示变量添加到长数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5124010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com