如何从数据框构造矩阵,该数据框从数据框中获取其中一列并将其用作矩阵的列变量?

时间:2017-11-26 07:45:14

标签: r

我有一个包含三列的数据框 - 州名,日期和数值。

我试图创建的矩阵需要将状态名称作为行名称,将日期作为列名称,并使用矩阵中的数值。显然,矩阵内将有许多NA值。 (有51个州'和84个日期)。我一整天都在研究这个问题,我得到的最接近的是创建一个数据框,其中日期和状态名称的正确数量相互对应,但数值不匹配。

有84个日期,但不是每个州都有84个相应的日期。

目标=所有州仅列出一次字母顺序...所有日期仅列出一次...填写空格以及NA

enter image description here 感谢

1 个答案:

答案 0 :(得分:1)

欢迎使用stackoverflow。当您在stackoverflow上发布问题时,如果您包含您尝试生成的数据的示例,那么请查看更好:reproducible example。即使您的问题微不足道,您的回复也会快得多。 下面,大多数代码行都会重现您的示例:

# create vector of random dates
dates <- as.Date(sample( as.numeric(as.Date('2015-01-01')): as.numeric(as.Date('2018-01-01')), 200, 
        replace = T), 
    origin = '1970-01-01')
# create vector of states
library(datasets)
data(state)
name<-state.name 
# create random number
values <- rnorm(50)

这是产生你想要的东西的方法之一

require(tidyverse)
df <- data.frame(dates, name, values)
df%>%spread(key=dates,value=values)%>%head(20)