我想把我的
dataframe
m x n
桌子。
我的原始数据的简化版本的代码和视图如下:
set.seed(1)
dat <- data.frame(x = rep(c("A","B","C","D","E"),2),
y = c("R","S",rep(c("P","Q","R","S"),2)),
val = sample(2:20,10))
x y val
1 A R 7
2 B S 8
3 C P 11
4 D Q 16
5 E R 5
6 A S 14
7 B P 15
8 C Q 9
9 D R 19
10 E S 2
所需结果的代码:
dat2 <- data.frame(x=c("A","B","C","D","E"),
P=c(NA,15,11,NA,NA),
Q=c(NA,NA,9,16,NA),
R=c(7,NA,NA,19,5),
S=c(14,8,NA,NA,2)
)
x P Q R S
1 A NA NA 7 14
2 B 15 NA NA 8
3 C 11 9 NA NA
4 D NA 16 19 NA
5 E NA NA 5 2
所以基本上,我想把所有的唯一值
y
并从中添加相应的值
val
,生成5x4矩阵。