Я пытаюсь создать фрейм данных, используя функцию. Эта функция основана на трех различных векторах (Tol, Bzn, mXyl), относящихся к 101 длине волны поглощения. Я хочу умножить на различные концентрации и в результате сохранить его в информационном кадре.
Я создал простой код (я знаю, что мог бы сделать это с другими более вежливыми функциями, но я немного приверженец R), который создает 27 строк различных комбинаций между концентрациями для каждого вектора. Таким образом, эти 27 строк должны быть строками кадра данных, и каждый столбец должен быть каждой длиной волны, хранящейся в векторах. (Длина волны - это переменные)
в качестве примера структуры вектора Tol (Bzn и mXyl аналогичны):
str(Tol)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 1 obs. of 101 variables:
$ nm200: num 8.13
$ nm201: num 8.3
$ nm202: num 8.47
$ nm203: num 8.69
$ nm204: num 8.91
(...) Есть от 200 до 300 длин волн. Вы можете визуализировать это!
$ nm294: num 0
$ nm295: num 0
$ nm296: num 0
$ nm297: num 0
$ nm298: num 0
И моя маленькая (и первая) функция, созданная с использованием R:
Con1 = 1
Con2 = 2
Con3 = 3
mat_cont <- function(Tol, Bzn, mXyl,Con1,Con2, Con3){
n1 <- 0 * (Tol*Con1) + 0 * (Bzn*Con2) + 0 * (mXyl*Con3)
n2 <- 0 * (Tol*Con1) + 0 * (Bzn*Con2) + 0.5 * (mXyl*Con3)
n3 <- 0 * (Tol*Con1) + 0 * (Bzn*Con2) + 1 * (mXyl*Con3)
n4 <- 0 * (Tol*Con1) + 0.5 * (Bzn*Con2) + 0 * (mXyl*Con3)
n5 <- 0 * (Tol*Con1) + 1 * (Bzn*Con2) + 0 * (mXyl*Con3)
n6 <- 0 * (Tol*Con1) + 0.5 * (Bzn*Con2) + 0.5 * (mXyl*Con3)
n7 <- 0 * (Tol*Con1) + 0.5 * (Bzn*Con2) + 1 * (mXyl*Con3)
n8 <- 0 * (Tol*Con1) + 1 * (Bzn*Con2) + 0.5 * (mXyl*Con3)
n9 <- 0 * (Tol*Con1) + 1 * (Bzn*Con2) + 1 * (mXyl*Con3)
n10 <- 0.5 * (Tol*Con1) + 0 * (Bzn*Con2) + 0 * (mXyl*Con3)
(...)
n25 <- 1 * (Tol*Con1) + 0.5 * (Bzn*Con2) + 1 * (mXyl*Con3)
n26 <- 1 * (Tol*Con1) + 1 * (Bzn*Con2) + 0.5 * (mXyl*Con3)
n27 <- 1 * (Tol*Con1) + 1 * (Bzn*Con2) + 1 * (mXyl*Con3)
result <- (data.frame(??????)
return(result)
}
Я бы хотел иметь такой фрейм данных с именем столбцов как nm200, nm201, nm202, nm203 ...:
n1 val1 val2 val3 val4 val5 val6 val7 val8 val9 (...)
n2 val1 val2 val3 val4 val5 val6 val7 val8 val9 (...)
n3 val1 val2 val3 val4 val5 val6 val7 val8 val9 (...)
n4 val1 val2 val3 val4 val5 val6 val7 val8 val9 (...)
n5 val1 val2 val3 val4 val5 val6 val7 val8 val9 (...)
(...)
n26 val1 val2 val3 val4 val5 val6 val7 val8 val9 (...)
n27 val1 val2 val3 val4 val5 val6 val7 val8 val9 (...)
Большое спасибо за вашу безграничную помощь!