【发布时间】:2016-11-17 15:01:00
【问题描述】:
我使用以下代码创建了一个数据框:
stocks <- data.frame(time = as.Date('2009-01-01') + 0:9,
X = rnorm(50, 20, 1),
Y= rnorm(50, 20, 2),= rnorm(50, 20, 2),
Z=rnorm(50,20,4))
)
我已将收集功能应用到数据框中:
res<-stocks%<%gather(company, value,-time)
在尝试传播资源时出现错误:
spread(data=res, key=company , value = value)
Error: Duplicate identifiers for rows
【问题讨论】:
-
你有一列没有名字
=rnorm(50,20,2) -
并且代码没有运行,因为它包含语法错误。
-
您需要一个序列列,即
stocks%>%gather(company, value,-time) %>% group_by(company) %>% mutate(i = row_number()) %>% spread(company, value)它可以是company或time中的group_by。由于没有预期的输出,所以不确定 -
@akrun 我更喜欢同时使用
company和time,因为它可以索引特定公司和时间的观察结果。结果无所谓,但索引更有意义。