R 如何写出依赖于常数的动力学方程
我试图写一个依赖于常数(层数)的方程。如下所示,如果我有两个级别,if语句将引用L1和L2 问题:R 如何写出依赖于常数的动力学方程,r,for-loop,R,For Loop,我试图写一个依赖于常数(层数)的方程。如下所示,如果我有两个级别,if语句将引用L1和L2 问题: 如何修改代码以反映x个级别数?x可以是任何整数(通常从2到12) 如果没有for循环,如何重写代码 非常感谢你的帮助 例如(两个级别): 查表 L1\u var这是我解决问题的方法,大量使用purr和dplyr。它应该适用于tbl中的任意数量的变量: library(purrr) library(dplyr) tbl %>% pmap(function(...) { args
L1\u var这是我解决问题的方法,大量使用purr
和dplyr
。它应该适用于tbl
中的任意数量的变量:
library(purrr)
library(dplyr)
tbl %>%
pmap(function(...) {
args <- c(...)
vars <- args[seq(1, length(args), 2)] %>%
set_names(NULL)
values <- args[seq(2, length(args), 2)] %>%
set_names(vars)
df %>%
filter(across(vars, ~ . == values[cur_column()])) %>%
mutate(across(.cols = vars,
.fns = ~ sprintf("%s: %s", cur_column(), .),
.names = "L{which(vars ==.col)}"))
}) %>%
bind_rows()
库(purrr)
图书馆(dplyr)
待定%>%
pmap(功能(…){
args%
过滤器(跨(变量,~.==值[cur_column()]))%>%
突变(跨越(.cols=vars,
.fns=~sprintf(“%s:%s”,cur_column(),),
.names=“L{which(vars==.col)}”))
}) %>%
绑定_行()
非常感谢!
Price <- c("Premium", "AO", "AO")
Type <- c("Diet", "Regular", "Diet")
Form <- c("Bottle", "Bottle", "Can")
df <- data.frame(Price, Type, Form)
for (i in 1:nrow(df)) {
for (j in 1:nrow(tbl)) {
if (df[i, tbl$L1_var[j]] == tbl$L1_val[j] &
df[i, tbl$L2_var[j]] == tbl$L2_val[j]) {
df[i, "L1"] <- paste0(tbl$L1_var[j], ": ", tbl$L1_val[j])
df[i, "L2"] <- paste0(tbl$L2_var[j], ": ", tbl$L2_val[j])
}
}
}
for (i in 1:nrow(df)) {
for (j in 1:nrow(tbl)) {
if (df[i, tbl$L1_var[j]] == tbl$L1_val[j] &
df[i, tbl$L2_var[j]] == tbl$L2_val[j] &
df[i, tbl$L3_var[j]] == tbl$L3_val[j] ) {
df[i, "L1"] <- paste0(tbl$L1_var[j], ": ", tbl$L1_val[j])
df[i, "L2"] <- paste0(tbl$L2_var[j], ": ", tbl$L2_val[j])
df[i, "L3"] <- paste0(tbl$L3_var[j], ": ", tbl$L3_val[j])
}
}
}
library(purrr)
library(dplyr)
tbl %>%
pmap(function(...) {
args <- c(...)
vars <- args[seq(1, length(args), 2)] %>%
set_names(NULL)
values <- args[seq(2, length(args), 2)] %>%
set_names(vars)
df %>%
filter(across(vars, ~ . == values[cur_column()])) %>%
mutate(across(.cols = vars,
.fns = ~ sprintf("%s: %s", cur_column(), .),
.names = "L{which(vars ==.col)}"))
}) %>%
bind_rows()