R将table()的输出保存到数据帧中

Ali*_*vil 13 r

我有以下数据框:

id<-c(1,2,3,4,1,1,2,3,4,4,2,2)
period<-c("first","calib","valid","valid","calib","first","valid","valid","calib","first","calib","valid")
df<-data.frame(id,period)
Run Code Online (Sandbox Code Playgroud)

打字

table(df) 
Run Code Online (Sandbox Code Playgroud)

结果是

period
id  calib first valid
1     1     2     0
2     2     0     2
3     0     0     2
4     1     1     1
Run Code Online (Sandbox Code Playgroud)

但是,如果我将其保存为数据框'df'

 df<-data.frame(table(df))
Run Code Online (Sandbox Code Playgroud)

'df'的格式就像

id period Freq
1   1  calib    2
2   2  calib    1
3   3  calib    1
4   4  calib    0
5   1  first    1
6   2  first    2
7   3  first    0
8   4  first    0
9   1  valid    0
10  2  valid    0
11  3  valid    2
12  4  valid    3
Run Code Online (Sandbox Code Playgroud)

如何避免这种情况,如何将第一个输出保存到数据框中?

更重要的是有没有办法使用'dcast'获得相同的结果?

joh*_*nes 22

这会有帮助吗?

> data.frame(unclass(table(df)))
  calib first valid
1     1     2     0
2     2     0     2
3     0     0     2
4     1     1     1
Run Code Online (Sandbox Code Playgroud)

  • 现在另一个问题:如果我想将id列包含在结果数据框中,该怎么办? (3认同)