mosaic()-vcd 包的函数:在单元格中添加文本时出错
mosaic()-function of the vcd package: error in adding text in the cells
我使用 vcd
包中的 mosaic
函数创建了一个马赛克图。现在我想使用 labeling_cells
添加一些注释。不幸的是,我得到一个错误。问题可能是它不是标准的 Titanic
示例...
library("grid"); library("vcd")
dataset <- read.table("http://bit.ly/1aJTI1C")
# prepare data for plot as a "Structured Contingency Table"
data1 <- structable(dauer ~ groesse + ort, dataset)
# basic plot
mosaic(data1,
# separate the two elements of the plot
split_vertical = c(T, T, F),
# put the names in the right places and adds boxes
labeling_args = list(tl_labels = TRUE,
tl_varnames = FALSE,
boxes = TRUE),
# grip remains open
pop=FALSE
)
# structure that matches plot, but it does not help
#match<-t(data1)
# try to add labels
labeling_cells(text = data1, clip = FALSE)(data1)
这导致:
# Error in ifelse(abbreviate_varnames, sapply(seq_along(dn), function(i) abbreviate(dn[i], :
# replacement has length zero
# In addition: Warning message:
# In rep(no, length.out = length(ans)) :
# 'x' is NULL so the result will be NULL
我遇到的另一个问题是盒子与标签不符。如果您对此有任何提示,也请告诉我!
这是我的第一个问题,所以请原谅潜在的错误!
非常感谢!
是的,这很令人困惑,应该在 labeling_cells()
中解决。由于某种原因,标签中的数据应该是常规的 table
,而不是 structable
。我将向 mosaic()
的主要作者和包维护者 David 提出这个问题。
不过,如果您知道它很容易解决:
labeling_cells(text = as.table(data1), clip = FALSE)(as.table(data1))
已在 vcd 1.4-4 的上游修复,但请注意,您可以简单地使用
mosaic(data1, labeling = labeling_values)
我使用 vcd
包中的 mosaic
函数创建了一个马赛克图。现在我想使用 labeling_cells
添加一些注释。不幸的是,我得到一个错误。问题可能是它不是标准的 Titanic
示例...
library("grid"); library("vcd")
dataset <- read.table("http://bit.ly/1aJTI1C")
# prepare data for plot as a "Structured Contingency Table"
data1 <- structable(dauer ~ groesse + ort, dataset)
# basic plot
mosaic(data1,
# separate the two elements of the plot
split_vertical = c(T, T, F),
# put the names in the right places and adds boxes
labeling_args = list(tl_labels = TRUE,
tl_varnames = FALSE,
boxes = TRUE),
# grip remains open
pop=FALSE
)
# structure that matches plot, but it does not help
#match<-t(data1)
# try to add labels
labeling_cells(text = data1, clip = FALSE)(data1)
这导致:
# Error in ifelse(abbreviate_varnames, sapply(seq_along(dn), function(i) abbreviate(dn[i], :
# replacement has length zero
# In addition: Warning message:
# In rep(no, length.out = length(ans)) :
# 'x' is NULL so the result will be NULL
我遇到的另一个问题是盒子与标签不符。如果您对此有任何提示,也请告诉我!
这是我的第一个问题,所以请原谅潜在的错误!
非常感谢!
是的,这很令人困惑,应该在 labeling_cells()
中解决。由于某种原因,标签中的数据应该是常规的 table
,而不是 structable
。我将向 mosaic()
的主要作者和包维护者 David 提出这个问题。
不过,如果您知道它很容易解决:
labeling_cells(text = as.table(data1), clip = FALSE)(as.table(data1))
已在 vcd 1.4-4 的上游修复,但请注意,您可以简单地使用
mosaic(data1, labeling = labeling_values)