0

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

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

loglin 中的错误(x,预期,fit = TRUE,print = FALSE):(列表)对象不能>被强制输入“double”

我的数据集如下:

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

一个 37 39 45 64

乙 13 13 23 38

33 69 67 56

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 的新手,所以任何帮助我指向正确方向的帮助表示赞赏。

4

1 回答 1

2

Mosaic 需要一个表格,而不是一个数据框。SandA是一个数据框。内容看起来像一个表格,但它不是。当你有一个My_df包含列StoreAge_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)
于 2017-11-08T15:28:51.460 回答