R长到宽,时间变量为rownames

时间:2017-11-04 16:57:52

标签: r

我想将数据集从long转移到wide,时间变量作为新的rownames,标识变量作为新的colnames。数据集如下所示:

df <- data.frame(year = c(2007,2008,2007), comp = c("A","A","B"), value = c(4,5,9)) df

数据集有时不包括所有公司的值。这些值只是缺失,并且在数据集中不显示为NA。但是,我希望将结果作为NA

我想以下列格式获取它:

df1 <- matrix(data = c(4,5,9,NA),nrow = 2,ncol = 2) colnames(df1) <- c("A","B") rownames(df1) <- c(2007,2008) df1

我尝试了重塑功能。但是,它不会以我的首选格式提供数据。有人知道一个函数给我的首选格式吗?

非常感谢!

1 个答案:

答案 0 :(得分:1)

library(tidyverse)

data.frame(year = c(2007,2008,2007),
           comp = c("A","A","B"),
           value = c(4,5,9)) %>% 
  spread(comp, value)