我们尝试对八个不同的数据集运行循环,然后以标准化格式保存输出。
数据框被称为df1
, df2
, df3
, etc.
我无法共享数据(这是数据示例 https://figshare.com/s/ace5b44bc12394a7c46d),但每个数据集都是df1
- 所以它确实有相同的列。
df1
看起来像:
age wt sex
10 200 F
15 250 F
20 300 F
12 200 M
13 250 M
25 300 M
和子集df
例如,s 可以是df2<-df1%>%filter(sex=="F")
, df3<-df1%>%filter(sex=="M")
,依此类推,适用于不同的条件。
这里有一个small我们要为每个数据帧运行的代码示例。
nls.mon <- nls(wt~A*(1-exp(k*(t0-age))),
data=df1,
start = list(A=253.6,k=.03348,t0=32.02158))
aad_mon_est <- data.frame(tidy(nls.mon))
mon_A_est <- as.numeric(aad_mon_est[1, "estimate"])
mon_k_est <- as.numeric(aad_mon_est[2, "estimate"])
mon_t0_est <- as.numeric(aad_mon_est[3, "estimate"])
nls.von <- nls(wt ~A*(1-(1/3)*exp(k*(t0-age)))^3,
data=df1,
start=list(A=253.6,k=.03348,t0=32.02158))
aad_von_est <- data.frame(tidy(nls.von))
von_A_est <- as.numeric(aad_von_est[1, "estimate"])
von_k_est <- as.numeric(aad_von_est[2, "estimate"])
von_t0_est <- as.numeric(aad_von_est[3, "estimate"])
如果有办法告诉循环运行每个数据帧(df1
, df2
, df3
等)然后保存aad_arc_B_est
, aad_arc_k_est
, and aad_arc_mx_est
然后?
我们希望得到如下所示的输出:
dataframe model A_est k_est t0_est
df1 nls.mon 250 10 0.14
df1 nls.von 350 12 0.13
df2 nls.mon 150 11 0.15
df2 nls.von 240 14 0.16
df3 nls.mon 220 11 0.11
df3 nls.von 450 15 0.10
我们正在考虑使用索引 - 就像for (i in dataframe)
让它运行每个数据帧,并且
dataframe[i,] <- row_i
在之后追加每一行?
但是,也许有更好的方法?