繁体   English   中英

如何在R中将值列表(x,y,value)转换为2D矩阵

[英]How to convert in R a list of values (x,y,value) to a 2D matrix

输入时,我有一个行列表,例如:

a a 1
a b 2
a c 3
b a 4
b b 5
b c 6
c a 7
c b 8
c c 9

我需要阅读R中的列表并使用矩阵或数据框

    a b c
  +-------
a | 1 2 3
b | 4 5 6
b | 7 8 9

有没有办法针对行和列数为50k的大型矩阵有效地做到这一点?

尝试reshape2::acast()

library(reshape2)
acast(df, V1 ~ V2, value.var = "V3")
  a b c
a 1 2 3
b 4 5 6
c 7 8 9

数据

df <- structure(list(V1 = c("a", "a", "a", "b", "b", "b", "c", "c", 
"c"), V2 = c("a", "b", "c", "a", "b", "c", "a", "b", "c"), V3 = 1:9), .Names = c("V1", 
"V2", "V3"), class = "data.frame", row.names = c(NA, -9L))

base R选项是xtabs

xtabs(V3 ~ ., df)
#   V2
#V1  a b c
#  a 1 2 3
#  b 4 5 6
#  c 7 8 9

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM