【发布时间】:2016-08-15 14:35:08
【问题描述】:
我正在使用一个模型来查看农作物区域的温室气体排放量。为了尝试衡量数据的标准偏差,我尝试通过多次迭代对其进行蒙特卡洛风格分析。
model parameters
a <- 0.1474 # Alpha
b <- 0.0005232 # Beta
g <- -0.00001518 # Gamma
d <- 0.000003662 # Delta
rain <- crm$rain # rainfall value for that location from the col 'rain'
数据位于data.table 中,如下所示,但 N 列从 N1-N100 运行:
rn rain Wheat N1 N2 N3 N4 N5 N6
# 1: 10007 1049.61 0.1718 0.6363109 0.939479 0.9242736 0.9018818 0.6556216 0.1150655
# 2: 10018 1114.31 0.1629 0.6363109 0.939479 0.9242736 0.9018818 0.6556216 0.1150655
# 3: 10023 1361.61 0.1082 0.6363109 0.939479 0.9242736 0.9018818 0.6556216 0.1150655
# 4: 10024 1407.20 0.0494 0.6363109 0.939479 0.9242736 0.9018818 0.6556216 0.1150655
# 5: 10025 1499.56 0.0200 0.6363109 0.939479 0.9242736 0.9018818 0.6556216 0.1150655
# 6: 10026 1654.13 0.0040 0.6363109 0.939479 0.9242736 0.9018818 0.6556216 0.1150655
所以我的问题是如何将下面的模型应用于每个 N 列并将结果添加到数据表的末尾?该模型适用于 N 的固定值,但我正在努力研究如何将每列的值放入模型中。
logN2O <- function (x) {a+(b*rain)+(g*N)+(d*rain*N)}
非常感谢。
编辑
为了澄清,我想先用 N1 的值运行模型,最后用该结果创建一个新的 col。然后对 N2 值执行相同的操作,以此类推,直到 N 列的末尾。
【问题讨论】:
-
不完全清楚你在追求什么,但也许你想要
lapply(.SD, function(x) { whatever needs to be done to each column } -
@MichaelChirico 我将编辑问题以使其更清晰。本质上,我想针对行的雨值运行每个 N(1:6) 值的模型,并将模型输出放在数据表的末尾。