r - 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 相关。
解决方案
使用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