表格如下:
> 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
>
我失去了gear
和am
。
我可以采用穴居人的风格:并添加"齿轮"定位1,1然后rbind" am"。还有更好的方法吗?
答案 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