R使用旧data.table中的单个列的指定行创建新的data.table

Nig*_*use 0 r data.table

我有以下内容data.table:

    Month Day  Lat Long        Temperature
 1:    10  01 80.0  180 -6.383330333333309
 2:    10  01 77.5  180 -6.193327999999976
 3:    10  01 75.0  180 -6.263328333333312
 4:    10  01 72.5  180 -5.759997333333306
 5:    10  01 70.0  180 -4.838330999999976
---                                       
117020:    12  31 32.5  310 11.840003833333355
117021:    12  31 30.0  310 13.065001833333357
117022:    12  31 27.5  310 14.685003333333356
117023:    12  31 25.0  310 15.946669666666690
117024:    12  31 22.5  310 16.578336333333358
Run Code Online (Sandbox Code Playgroud)

对于每个地点(由Lat和给出Long),我在10月1日至12月31日期间每天都有温度.

有1,272个地点,每个成对组合包括Lat:

    Lat
1   80.0
2   77.5
3   75.0
4   72.5
5   70.0
--------
21  30.0
22  27.5
23  25.0
24  22.5
Run Code Online (Sandbox Code Playgroud)

并且Long:

Long
1   180.0
2   182.5
3   185.0
4   187.5
5   190.0
---------
49  300.0
50  302.5
51  305.0
52  307.5
53  310.0
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个data.table由1,272行(每个位置一个)和92列(每天一个)组成的行.data.table然后,其中的每个元素将包含当天该位置的温度.

关于如何在不使用for循环的情况下实现该目标的任何建议?

Bro*_*ieG 5

在这里我们使用ChickWeights数据,我们使用"Chick-Diet"作为"lat-lon"的等价物,"Time"作为"Date":

dcast.data.table(data.table(ChickWeight), Chick + Diet ~ Time)
Run Code Online (Sandbox Code Playgroud)

生产:

     Chick Diet 0 2  4  6  8 10 12 14 16 18 20 21
 1:    18    1 1 1 NA NA NA NA NA NA NA NA NA NA
 2:    16    1 1 1  1  1  1  1  1 NA NA NA NA NA
 3:    15    1 1 1  1  1  1  1  1  1 NA NA NA NA
 4:    13    1 1 1  1  1  1  1  1  1  1  1  1  1
 5:   ... 46 rows omitted
Run Code Online (Sandbox Code Playgroud)

lat + lon ~ Month + Day的公式可能需要或类似.

将来,请像我在这里使用内置数据集一样使您的问题重现.