我如何使用 R 中的公式循环这些数据
How I can loop these data using a formula in R
我有以下数组:
m <- c(1, 4, 7)
n <- c(2, 5, 8)
p <- c(3, 6, 9)
A <- seq(-2, 2, 0.1)
我的公式是:
(A+m)*(exp(p+n))
我想得到数组的结果。所以对于所有可能的 A,m=1,n=2,p=3。对于所有可能的 A,m=4,n=5,p=6,对于所有可能的 A,m=7,n=8 和 p=9。我想在数组中增加数字时使用它。
顶部和底部三个的输出与此类似。
A V1 V2 V3
-2 -148.41316 119748.3 120774764
-1.9 -133.57184 125735.7 123190259
-1.8 -118.73053 131723.1 125605754
-1.7 -103.88921 137710.5 128021250
-1.6 -89.0479 143697.9 130436745
-1.5 -74.20658 149685.4 132852240
… .. … …
… .. .. …
使用dplyr
library(dplyr)
df <- data.frame(A)
for(i in seq_along(m)){
df <- df %>%
mutate(!!sym(paste0("V",i)) := sapply(A, function(x){(x+m[i])*(exp(p[i]+n[i]))}))
}
输出
> head(df)
A V1 V2 V3
1 -2.0 -148.41316 119748.3 120774764
2 -1.9 -133.57184 125735.7 123190259
3 -1.8 -118.73053 131723.1 125605754
4 -1.7 -103.88921 137710.5 128021250
5 -1.6 -89.04790 143697.9 130436745
6 -1.5 -74.20658 149685.4 132852240
我有以下数组:
m <- c(1, 4, 7)
n <- c(2, 5, 8)
p <- c(3, 6, 9)
A <- seq(-2, 2, 0.1)
我的公式是:
(A+m)*(exp(p+n))
我想得到数组的结果。所以对于所有可能的 A,m=1,n=2,p=3。对于所有可能的 A,m=4,n=5,p=6,对于所有可能的 A,m=7,n=8 和 p=9。我想在数组中增加数字时使用它。
顶部和底部三个的输出与此类似。
A V1 V2 V3
-2 -148.41316 119748.3 120774764
-1.9 -133.57184 125735.7 123190259
-1.8 -118.73053 131723.1 125605754
-1.7 -103.88921 137710.5 128021250
-1.6 -89.0479 143697.9 130436745
-1.5 -74.20658 149685.4 132852240
… .. … …
… .. .. …
使用dplyr
library(dplyr)
df <- data.frame(A)
for(i in seq_along(m)){
df <- df %>%
mutate(!!sym(paste0("V",i)) := sapply(A, function(x){(x+m[i])*(exp(p[i]+n[i]))}))
}
输出
> head(df)
A V1 V2 V3
1 -2.0 -148.41316 119748.3 120774764
2 -1.9 -133.57184 125735.7 123190259
3 -1.8 -118.73053 131723.1 125605754
4 -1.7 -103.88921 137710.5 128021250
5 -1.6 -89.04790 143697.9 130436745
6 -1.5 -74.20658 149685.4 132852240