首页 > 解决方案 > R数据框:观察列上变量的演变

问题描述

给定一个带有闲置变量的 R 数据框:ID、DATE 和 RATING。

'''
data<-data.frame(ID=c(1,1,1,2,3,4),DATE=c('2019-01-01','2019-02-01','2019-03-01','2019-02-01','2019-02-01','2019-02-01'),RATING=c('A','B','C','B','B','C'))
'''

如何将 new.data 对象作为矩阵或 data.frame 获取?new.data 的行名与数据对象中的变量 ID 相关。

在此处输入图像描述

标签: rdataframedplyr

解决方案


使用data.table

library(data.table)
setDT(data)
out <- data[, dcast(.SD, ID ~ DATE, value.var = "RATING")]
as.matrix(out, rownames = "ID")

  2019-01-01 2019-02-01 2019-03-01
1 "A"        "B"        "C"       
2 NA         "B"        NA        
3 NA         "B"        NA        
4 NA         "C"        NA    

推荐阅读