【问题标题】:how to apply a function on a data set?如何在数据集上应用函数?
【发布时间】:2018-03-07 04:33:17
【问题描述】:

我有以下数据集。当我运行以下函数时,它只会产生一行结果。我需要找到每棵树的 Gomp。

Tree        a       b       k
4382        21,88   9,59    0,0538
4383        13,93   12,94   0,0811
4384        19,69   9,78    0,0597
4385        20,02   8,23    0,0489
4386        11,07   23,2    0,1276
4387        18,35   13,29   0,0772
4388        19,72   17,53   0,0961
4389        26,3    5,26    0,0278

DOY = c(1:365)

Gomp <- data.frame(DF$a * exp (-exp(DF$b-DF$k*DOY)))

【问题讨论】:

  • 你想达到什么目的?
  • 我需要为每棵树找到 Gomp
  • 当你的df只有8条记录时,为什么是DOY 1到365?
  • a、b 和 k 是固定参数,DOY 是一年中的天数。我需要为每棵树找到基于其自身固定值的每日值。

标签: r function apply


【解决方案1】:

我至少不太确定我是否理解正确。也许一个更好的问题可以改善答案...

DF <- data.frame(Tree = c(4382, 4383, 4384, 5385, 4386), a = c(21.88, 13.93, 19.69, 20.02, 11.07), b = c(9.59, 12.95, 9.78, 8.23, 23.20), k = c(0.0538, 0.0811, 0.0597, 0.0489, 0.1276))
DOY <- c(1:365)
DF_new <-  data.frame(sapply(1:length(DF$Tree), function(x)(DF$a[x]*exp(-exp(DF$b[x]-DF$k[x]*DOY)))))
colnames(DF_new) <- DF$Tree

使用 sapply(apply、vapply 等),您可以循环遍历向量、列表、数据框等。如果没有1:length(DF$Tree),则使用值而不是索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-10
    • 2022-11-13
    相关资源
    最近更新 更多