将表转换为数据帧并具有确切的样式/布局

时间:2017-05-22 15:22:58

标签: r dataframe

表格如下:

> xtabs(~gear+am,mtcars)
    am
gear  0  1
   3 15  0
   4  4  8
   5  0  5
> 

数据框版本如下:

> as.data.frame.matrix(xtabs(~gear+am,mtcars))
   0 1
3 15 0
4  4 8
5  0 5
>

我失去了gearam

我可以采用穴居人的风格:并添加"齿轮"定位1,1然后rbind" am"。还有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

这个怎么样?

library(tidyverse)
data.frame(xtabs(~gear + am, mtcars)) %>% 
    mutate(am = paste0("am", am)) %>% 
    spread(am, Freq)

  gear am0 am1
1    3  15   0
2    4   4   8
3    5   0   5

答案 1 :(得分:0)

也不完全相同,但含义相同。

r.t <- xtabs(~ gear + am, mtcars)
r.d <- as.data.frame.matrix(r)
rownames(r.d) <- paste0(names(dimnames(r.t))[1], dimnames(r.t)[[1]])
colnames(r.d) <- paste0(names(dimnames(r.t))[2], dimnames(r.t)[[2]])
r.d

#       am0 am1
# gear3  15   0
# gear4   4   8
# gear5   0   5