在带日期的宽和长格式之间转换数据

时间:2019-02-06 22:52:52

标签: r reshape

我想将数据框从宽格式转换为长格式。但是,我有一个日期列,当我与dcast绑定时,它复制了我的日期列。结果是带有多个NA的行和重复的Date行。

这是我的数据

 ID    Date     Type   variable
264 2018-05-25  Xylem  -63.06
308 2018-05-27  Xylem  -67.22
357 2018-05-31 Leaves  -23.31
405 2018-06-02  Xylem  -65.40
434 2018-06-04  Xylem  -70.05
435 2018-06-04 Leaves  -34.48
436 2018-06-04 Phloem  -71.03
437 2018-06-02 Leaves  -32.86
467 2018-06-06  Xylem  -59.86
468 2018-06-06 Phloem  -64.69

我尝试了以下代码:

data_wide<- dcast(df,  Date + ID ~ Type, value.var=c("variable"))

返回:

        Date  ID Leaves Phloem  Xylem
19  2018-05-31 357 -23.31     NA     NA
20  2018-06-02 405     NA     NA -65.40
21  2018-06-02 437 -32.86     NA     NA
22  2018-06-04 434     NA     NA -70.05
23  2018-06-04 435 -34.48     NA     NA
24  2018-06-04 436     NA -71.03     NA
25  2018-06-06 467     NA     NA -59.86
26  2018-06-06 468     NA -64.69     NA
27  2018-06-06 469 -27.10     NA     NA
28  2018-06-08 478     NA     NA -54.82
29  2018-06-08 479     NA -59.01     NA
30  2018-06-08 480 -33.80     NA     NA
31  2018-06-10 514     NA     NA -59.89
32  2018-06-10 515     NA -62.83     NA
33  2018-06-10 516 -31.11     NA     NA
34  2018-06-14 572     NA     NA -69.44
35  2018-06-14 573     NA -74.24     NA
36  2018-06-14 574 -27.29     NA     NA

我想要它,没有重复的日期和值在同一行中。

       Date    ID  Leaves  Phloem   Xylem
19  2018-05-31 357 -23.31     NA     NA
20  2018-06-02 405 -32.86     NA   -65.40
22  2018-06-04 434 -34.48  -71.03  -70.05
25  2018-06-06 467 -27.10  -64.69  -59.86
28  2018-06-08 478 -33.80  -59.01  -54.82
31  2018-06-10 514 -31.11  -62.83  -59.89
34  2018-06-14 572 -27.29  -74.24 -69.44

我虽然是导致问题的“ ID”列,但这是有道理的。但是,如果我删除它,代码将无法正常工作。...

data_wide<- dcast(df,  Date + ID ~ Type, value.var=c("variable"))

我想要一列包含日期且没有重复值的

0 个答案:

没有答案