我正在尝试根据两列中的值将函数应用于数据框的每个子集。以下示例是我的问题的简化表示。
说我有以下数据框
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 值对每个子集应用一个连续函数(意味着我不能只在子设置之前为每一行应用函数,这将使任务更容易),即每个df[df$a==A & df$b==B,]
whereA=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
和apply
. 但我无法解决。有人可以帮忙吗?