我是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的新手,所以任何帮助我指向正确方向的人都会受到赞赏。
答案 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)