R zapisuje dane wyjściowe tabeli () do ramki danych

Mam następującą ramkę danych:

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)

pisanie na maszynie

table(df) 

prowadzi do

period
id  calib first valid
1     1     2     0
2     2     0     2
3     0     0     2
4     1     1     1

jeśli jednak zapiszę go jako ramkę danych „df”

 df<-data.frame(table(df))

format „df” byłby podobny

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

jak mogę tego uniknąć i jak mogę zapisać pierwsze wyjście w ramce danych?

co ważniejsze, czy jest jakiś sposób na uzyskanie tego samego wyniku za pomocą „dcast”?

questionAnswers(2)

yourAnswerToTheQuestion