【发布时间】:2014-01-27 11:01:19
【问题描述】:
我正在尝试计算索引,但我遇到了暗示日期的公式步骤。
这是我输入的一部分:
YEAR RN DATE NOM SITE LONG SP SUMNB NB100
2010 RNN157 2010-04-22 COMBE LAVAUX-JEAN ROLAND RNN157-Combe Lavaux 01 Sentier des crêtes 111 Anthocharis cardamines (Linnaeus, 1758) 1 0.9009009
2010 RNN157 2010-04-26 COMBE LAVAUX-JEAN ROLAND RNN157-Combe Lavaux 01 Sentier des crêtes 111 Anthocharis cardamines (Linnaeus, 1758) 1 0.9009009
2010 RNN157 2010-03-22 COMBE LAVAUX-JEAN ROLAND RNN157-Combe Lavaux 01 Sentier des crêtes 111 Anthocharis cardamines (Linnaeus, 1758) 0 0.0000000
2010 RNN157 2010-09-29 COMBE LAVAUX-JEAN ROLAND RNN157-Combe Lavaux 01 Sentier des crêtes 111 Anthocharis cardamines (Linnaeus, 1758) 0 0.0000000
2010 RNN157 2010-05-18 COMBE LAVAUX-JEAN ROLAND RNN157-Combe Lavaux 06 Friches parc de nuit 111 Anthocharis cardamines (Linnaeus, 1758) 1 0.9009009
2010 RNN157 2010-04-15 COMBE LAVAUX-JEAN ROLAND RNN157-Combe Lavaux 06 Friches parc de nuit 111 Anthocharis cardamines (Linnaeus, 1758) 0 0.0000000
2010 RNN157 2010-09-29 COMBE LAVAUX-JEAN ROLAND RNN157-Combe Lavaux 06 Friches parc de nuit 111 Anthocharis cardamines (Linnaeus, 1758) 0 0.0000000
对于每个 YEAR/SITE/SP 子集中的每一行,我需要计算一行日期和前一行日期之间的时间差(以天为单位) ((Row x) - (row x-1) )。然后结果将存储在一个新列中。
我在 SO 上找到了一些函数,允许计算具有行位置的事物,但由于我使用的是日期,并且由于不明原因,它返回给我的日期类似于 1970 年。
>DF[, DIFF := DATE - c(NA, DATE[seq_len(.N-1)])][]
SP SUMNB NB100 DIFF
Anthocharis cardamines (Linnaeus, 1758) 1 0.9009009 <NA>
Anthocharis cardamines (Linnaeus, 1758) 1 0.9009009 1970-01-05
Anthocharis cardamines (Linnaeus, 1758) 0 0.0000000 1969-11-27
Anthocharis cardamines (Linnaeus, 1758) 0 0.0000000 1970-07-11
Anthocharis cardamines (Linnaeus, 1758) 1 0.9009009 1969-08-20
Anthocharis cardamines (Linnaeus, 1758) 0 0.0000000 1969-11-29
Anthocharis cardamines (Linnaeus, 1758) 0 0.0000000 1970-06-17
我还没有达到将这个公式添加到 tapply 函数中以便将其应用于子集的地步。
由于我未能将其与 difftime() 混合,您对我如何在几天内获得差异有一些想法吗?
【问题讨论】:
-
as.numeric(DIFF) 怎么样?
标签: r