如何使用向量中的函数创建数据框?

时间:2019-05-08 13:56:12

标签: r dataframe vector rstudio

我正在尝试使用Function创建一个数据框。此功能基于与101个吸收波长有关的三个不同向量(Tol,Bzn,mXyl)。我想乘以不同的浓度,然后将其存储在数据框中。

我已经创建了一个简单的代码(我知道我可以使用其他更有礼貌的功能来做到这一点,但是我对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 (...)

非常感谢您无与伦比的帮助!

0 个答案:

没有答案