我正在尝试根据两列中的值将函数应用于数据框的每个子集。以下示例是我的问题的简化表示。
说我有以下数据框
a=rep(1:5,each=5,times=5)
b=rep(c(2,6,9,10,12),each=25)
t=rep(seq(0,20,5),times=25)
df=as.data.frame(cbind(a,b,t))
t
是一个时间步骤。并且我想基于a和b值(即每个{{1)为每个子集应用连续函数(意味着我不能仅在子设置之前为每一行应用函数,这将使任务更容易)其中df[df$a==A & df$b==B,]
和A=1,..,5
。
例如
B=11,...,15
我想要使用的函数取决于所有三个变量df[df$a==1 & df$b==12,]
a b t
101 1 12 0
102 1 12 5
103 1 12 10
104 1 12 15
105 1 12 20
(例如(a, b and t)
,其中a^2+b*t-c
是上一个时间步的结果,这就是为什么我不能只申请在子设置之前的每一行的功能)。
我尝试使用c
/ split
和subset
等功能。但我无法解决它。有人可以帮忙吗?