R

时间:2017-10-21 17:59:56

标签: r plot mosaic-plot

我是R的新手,我正在尝试使用R中的VCD包生成马赛克图,但我的代码会生成以下错误:

  

不推荐在tibble上设置行名称。

     

loglin中的错误(x,expected,fit = TRUE,print = FALSE):( list)对象不能被强制键入'double'

我的数据集如下:

商店16-24 25-34 35-49 50 +

A 37 39 45 64

B 13 13 23 38

C 33 69 67 56

D 16 31 34 22

E 8 16 21 35

商店ID在第一列,年龄范围在第2-4列。

我生成马赛克图的代码是:

library(readr)
SandA = readr::read_csv("StoresAndAges.csv", col_names = TRUE)
SandA
library(vcd)
mosaic(SandA, shade=TRUE, legend=TRUE)

我是R的新手,所以任何帮助我指向正确方向的人都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

Mosaic需要一个表,而不是数据帧。 SandA是一个数据框。内容看起来像一张桌子,但事实并非如此。 如果您有My_df Store Age_Range ,并且行中填充了相应的内容,每次观察一行,您可以执行此操作以获取拼接图:

mosaic(table(My_df$Store, My_df$Age_Range))

或者,在不同的步骤中:

# first make a table that looks like your original data
My_table <-table(My_df$Store, My_df$Age_Range)
# My_table is a table, so it can be fed to mosaic()
mosaic(My_table)