我有这个向量
ID var2 ID var2 var1 ID var2 ID var3
"1000" "1" "1001" "1" "1" "1002" "7" "1003" "3"
可以从
x=c("1000","1","1001","1","1","1002","7","1003","3")
names(x)=c("ID","var2","ID","var2","var1","ID","var2","ID","var3")
然后将其转换为尺寸为4x4的矩阵:
ID var1 var2 var3
"1000" NA "1" NA
"1001" "1" "1" NA
"1002" NA "7" NA
"1003" NA NA "3"
请问你能帮帮我吗?
既不漂亮也不很快,但是您可以使用 data.table::rbindlist
library(data.table)
# Create list of lists splitting data by ID and convert to data.table
dt <- rbindlist(tapply(x, cumsum(names(x) == "ID"), as.list), fill=TRUE)
# Ensure column order
setcolorder(dt, c('ID', 'var1', 'var2', 'var3'))
# Convert to matrix
as.matrix(dt)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句