R从旧data.table创建具有指定行的单列新data.table
我有以下R从旧data.table创建具有指定行的单列新data.table,r,data.table,R,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 -
数据。表:
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
对于每个位置(由Lat
和Long
给出),我有从10月1日到12月31日每天的温度
共有1272个位置,由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
和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
我正在尝试创建一个data.table
,它由1272行(每个位置一行)和92列(每天一列)组成。该数据的每个元素。表将包含当天该位置的温度
关于如何在不使用for
循环的情况下实现该目标,有什么建议吗?这里我们使用鸡重
作为数据,我们使用“鸡食”作为你的“lat lon”的等价物,“时间”作为你的“日期”:
产生:
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
您可能需要lat+lon~Month+Day
或类似的公式
将来,请像我在这里所做的那样,使用内置的数据集来回答您的问题。这里我们使用鸡重
作为数据,其中我们使用“鸡食”作为您的“lat lon”,使用“时间”作为您的“日期”:
产生:
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
您可能需要lat+lon~Month+Day
或类似的公式
将来,请像我在这里使用内置数据集那样提出您的问题。首先使用lubridate
包创建一个日期值(我假设年份为2014年,根据需要进行调整):
首先使用lubridate软件包创建日期值(我假设年份为2014年,根据需要进行调整):
哇,太好了。非常感谢您花时间制作这个示例,我一定会在以后的查询中这样做。哇,太好了。非常感谢您花时间制作这个示例,我一定会在以后的查询中这样做。
library(lubridate)
df$datetext <- paste(df$Month,df$Day,"2014",sep="-")
df$date <- mdy(df$datetext)
library(tidyr)
spread(df[,-c(1:2,6)],date,Temperature)
Lat Long 2014-10-01 2014-12-31
1 22.5 310 NA 16.57834
2 25.0 310 NA 15.94667
3 27.5 310 NA 14.68500
4 30.0 310 NA 13.06500
5 32.5 310 NA 11.84000
6 70.0 180 -4.838331 NA
7 72.5 180 -5.759997 NA
8 75.0 180 -6.263328 NA
9 77.5 180 -6.193328 NA
10 80.0 180 -6.383330 NA