将两列转换为行和列

时间:2015-12-17 19:36:52

标签: r

我的桌子看起来像这样:
第1栏第2栏第3栏 A X 87
A Y 523
A Z 234
B X 33
B Y 104
C X 93
C Z 24

是否可以将其转换为ABC为列名且XYZ为行名的表?这些数字将包含在表格中。

2 个答案:

答案 0 :(得分:0)

使用以下示例数据集(和reshape2包)

library(reshape2)
datas = expand.grid(Col1 = c('A','B','C'), Col2 = c('X','Y','Z'),Col3 = 1)
casteddata = acast(datas, Col1 ~ Col2, value.var = 'Col3')

答案 1 :(得分:0)

使用tidyr包

install.packages("tidyr")
library(tidyr)

我假设你在数据框中设置了这个

#Set up data
a<-c('A',
'A',
'A',
'B',
'B',
'C',
'C')

b<-c(
'X',
'Y',
'Z',
'X',
'Y',
'X',
'Z')

c<-c(87,
523,
234,
33,
104,
93,
24)

df <- data.frame(a,b,c)

使用传播功能

df_spread <- spread(df, "a","c")

> df_spread
  b   A   B  C
1 X  87  33 93
2 Y 523 104 NA
3 Z 234  NA 24