如何将行名转换为列名并按R中的顺序绑定

时间:2019-04-05 20:39:25

标签: r row multiple-columns spread

我正在处理一个数据集: Annual Returns by Ticker

我想转换为:Result Matrix

我使用了代码:

returns.df <-返回%>%点差(键=日期,值=返回)

并且显示错误的顺序:enter image description here

2 个答案:

答案 0 :(得分:0)

假设您的长格式数据以所需顺序从行开始,请尝试以下操作:

month_order = unique(returns)
returns.df <- returns %>%
  spread(key = DATE, value = RETURN) %>% 
  select(c("TICKER", month_order))

如果数据的开头顺序不正确,则附加一年并将其转换为Date类对象。然后,您可以按正确的顺序对其进行排序,并使用上面的方法。

答案 1 :(得分:0)

我想出了我写的这些多行代码:

column <- unique(returns$DATE)
ret <- matrix(returns$RETURN,nrow = 22,ncol = 60)
row <- unique(returns$TICKER)
rownames(ret) <- row
colnames(ret) <- column
ret

这个怎么样?