dcast 产生极宽的数据帧
dcast produces extremely wide dataframe
我正在尝试转换如下所示的数据:
> long.data
date ID average stat
5128 20020510 UKM66 42.51919 minimum
2267 20020510 PL622 61.31768 average
265 20020503 DE71E 42.17819 maximum
其中 average
由 date
、ID
和 stat
的组合标识,如下所示:
> wide.data
date ID minimum average maximum
1 20020510 UKM66 50 62 70
2 20020510 PL622 52 60 63
3 20020510 DE71E 49 67 80
据我所知,dcast
是一个很好的方法,但是当我尝试以下操作时:
> wide.data <- dcast(long.data, date + ID + stat ~ average)
我收到一条警告和一个非常长的数据帧:
Using stat as value column: use value.var to override.
> ncol(wide.data)
[1] 4577
R 似乎为每个唯一观察值提供了一个列。我已经阅读了关于 reshape2
和 dcast
的文档,但我仍然没有理解正确。这里出了什么问题?
你想要dcast(long.data, date + ID ~ stat, value.var="average")
。 dcast
将为 ~
右侧变量的每个唯一值(或多个变量的值组合)提供一个新列。
我正在尝试转换如下所示的数据:
> long.data
date ID average stat
5128 20020510 UKM66 42.51919 minimum
2267 20020510 PL622 61.31768 average
265 20020503 DE71E 42.17819 maximum
其中 average
由 date
、ID
和 stat
的组合标识,如下所示:
> wide.data
date ID minimum average maximum
1 20020510 UKM66 50 62 70
2 20020510 PL622 52 60 63
3 20020510 DE71E 49 67 80
据我所知,dcast
是一个很好的方法,但是当我尝试以下操作时:
> wide.data <- dcast(long.data, date + ID + stat ~ average)
我收到一条警告和一个非常长的数据帧:
Using stat as value column: use value.var to override.
> ncol(wide.data)
[1] 4577
R 似乎为每个唯一观察值提供了一个列。我已经阅读了关于 reshape2
和 dcast
的文档,但我仍然没有理解正确。这里出了什么问题?
你想要dcast(long.data, date + ID ~ stat, value.var="average")
。 dcast
将为 ~
右侧变量的每个唯一值(或多个变量的值组合)提供一个新列。