【发布时间】:2011-08-04 18:09:19
【问题描述】:
我在 R 中工作。我有一个数据框,df,看起来像这样:
> str(exp)
'data.frame': 691200 obs. of 19 variables:
$ groupname: Factor w/ 8 levels "rowA","rowB",..: 1 1 1 1 1 1 1 1 1 1 ...
$ location : Factor w/ 96 levels "c1","c10","c11",..: 1 2 3 4 12 23 34 45 56 67 ...
$ starttime: num 0 0 0 0 0 0 0 0 0 0 ...
$ inadist : num 0 0.2 0 0.2 0.6 0 0 0 0 0 ...
$ smldist : num 0 2.1 0 1.8 1.2 0 0 0 0 3.3 ...
$ lardist : num 0 0 0 0 0 0 0 0 0 1.3 ...
$ fPhase : Factor w/ 2 levels "Light","Dark": 2 2 2 2 2 2 2 2 2 2 ...
$ fCycle : Factor w/ 6 levels "predark","Cycle 1",..: 1 1 1 1 1 1 1 1 1 1 ...
我想添加另一列timepoint,它给出了starttime 相对于它所在的fCycle 的开头。所以starttime=1801 将是timepoint=1 for fCycle='Cycle 1'。
创建df$timepoint 的最佳方式是什么?
ETA 玩具数据集:
starttime fCycle timepoint
1 1 1
2 1 2
3 1 3
4 1 4
5 2 1
6 2 2
7 2 3
8 2 4
9 3 1
10 3 2
11 3 3
12 4 1
13 4 2
14 4 3
15 5 1
16 5 2
17 6 1
18 6 2
19 6 3
20 6 4
【问题讨论】:
-
您可能想澄清您想使用玩具数据集做什么,如 in this question 所述。现在我不知道 starttime 是什么,我唯一能想到的是
df$timepoint <- 1(因为我假设 starttime 对于一个周期内的每个观察都是相等的)。 -
@Joris Meys:我添加了一些示例数据。这个想法是我应该能够比较从任何周期开始的相同偏移量的测量值。
-
澄清一下,如果 fCycle[c(21,22)]=c(1,1) 会怎样?现在是时间点(1,2)吗?还是周期单调递增?
-
@Iterator:目前数据帧按组名排序,然后是位置,然后是开始时间。所以有 96 行 starttime=0,然后 96 行 starttime=1,等等。 fCycles 是使用开始时间范围分配的,例如predark 是 starttime
-
@dnagirl :它没有。如果在同一个 fCycle 中有两个开始时间相同的观测值,它们的时间点是相同的还是不同的?
标签: r time-series factors