【发布时间】:2017-07-24 07:41:47
【问题描述】:
我想将以下 data.frame 的 DATE 分布到列中,并将年份放在行中。我的数据结构是:
> str(df)
'data.frame': 836 obs. of 3 variables:
$ DATE: Date, format: "2014-01-03" "2014-01-04" "2014-01-06" "2014-01-07" ...
$ VALUE : num 1 3 1 1 2 6 1 2 1 1 ...
$ YEAR : chr "2014" "2014" "2014" "2014" ...
spread(df, key=DATE, value=VALUE)
但我收到错误消息“无效的列规范”。传播这个功能不合适吗?
编辑:
> str(dfTest)
'data.frame': 836 obs. of 3 variables:
$ DATE: Date, format: "2015-01-16" "2014-01-06" "2016-07-28" "2016-05-31" ...
$ VALUE : num 2 1 3 1 2 22 5 1 4 2 ...
$ YEAR : int 2015 2014 2016 2016 2016 2016 2017 2016 2015 2014 ...
>
> head(dfTest)
DATE VALUE YEAR
1 2015-01-16 2 2015
2 2014-01-06 1 2014
3 2016-07-28 3 2016
4 2016-05-31 1 2016
5 2016-04-28 2 2016
6 2016-12-23 22 2016
> spread(dfTest, key=dfTest$DATE, value=dfTest$VALUE)
Error: Invalid column specification
【问题讨论】:
-
能否请您展示一个可重复的小示例,因为它适用于我使用
df <- data.frame(DATE = rep(Sys.Date() +0:5, each = 3), VALUE = sample(1:5, 18, replace = TRUE), YEAR = 2003:2008);spread(df, key=DATE, value=VALUE) -
我用上面的例子改变了我的帖子。你的例子很好,但我认为我的例子是一样的。
-
我认为您不需要
$运算符。试试spread(dfTest, key=DATE, value=VALUE)。 -
$-运算符是错误的!谢谢!!!