【问题标题】:Print levels of conditioning variable in heading (strip) on each specific plot in lattice在格子中的每个特定图上打印标题(条)中的条件变量级别
【发布时间】:2015-04-06 10:48:37
【问题描述】:

我输入了以下内容:

histogram(~ Raw.no10$Width | Raw.no10$Station * Raw.no10$Year,
  data = Raw.no10, layout = c(4, 2), nin = 30, xlab = "Prosomal Width (mm)",
  strip = strip.custom(bg = 'white'), ylab = "Frequencies", tick = -1, col = 'grey') 

在每个小图表的顶部,它显示“Raw.no10$Year”而不是特定年份,例如 2014 年。

所以,我改成如下:

histogram(~ Raw.no10$Width | Raw.no10$Station * Raw.no10$Year,
  data = Raw.no10, layout = c(4, 2), nin = 30, xlab = "Prosomal Width (mm)",
  strip = strip.custom(bg = 'white', var.name = c("2002", "2014")),
  ylab = "Frequencies", tick = -1, col = 'grey')

现在每个小图表的顶部仅显示“2014”。我在任何图表中都找不到“2002”。

如何在这些晶格直方图中的每个面板上方的条带中打印条件变量的值?

【问题讨论】:

  • Raw.no10 看起来像什么?它是否驻留在现有包中?否则你能发布dput(Raw.no10) 的结果吗,或者如果太大,像head(Raw.no10) 这样的东西?这样,您将更有可能获得您正在寻找的帮助。也看看stackoverflow.com/questions/5963269/…
  • 一时兴起:尝试调用变量,而不是向量(这就是为什么有data 参数的原因)。 histogram(~Width | Station * Year, data=Raw.no10....
  • 感谢您的建议,Roman。我已尝试这样做,因此在所有格子图上始终显示“年份”一词....orz
  • 谢谢多米尼克。请问我可以知道如何使用 dput(Raw.no10) 吗?我试图在这个程序语言中输入 R 并且 R 说:“dput(head(Raw.no10), 20) 中的错误:'file' 必须是字符串或连接”
  • 这应该是dput(head(Raw.no10, 20)),因为20head 的一个参数。然后在输入该命令后复制并粘贴控制台中显示的内容。

标签: r histogram lattice strip


【解决方案1】:

只要条件变量是因子,格点图函数就会在面板上方打印条件变量(| 之后的变量)的水平。如果条件变量是数字,这是我在你的情况下的猜测,这些值将不会自动打印

所以有两种方式来回答您的请求

首先,一些可重现的数据

set.seed(123)
histDat <- expand.grid(Station = 1:5, Year = 2009:2014)
histDat$Width <- rnorm(nrow(histDat), 15 + histDat$Station, 5)

1.将strip.levels 参数更改为strip.custom

将值c(TRUE, TRUE) 传递给strip.custom 函数中的strip.levels 参数。这将打印条件变量的级别,无论数据框中的基础变量是否是一个因素。它还将打印变量名称。

histogram(~ Width | Station * Year, data = histDat,
    strip = strip.custom(bg = 'white', strip.levels = c(TRUE, TRUE)),
    ylab = "Frequencies" ,tick = -1, col = 'grey')

2。将条件变量改为因子

您可以通过更改 data.frame 或更改传递给 histogram 的公式将条件变量(在这种情况下为 Year)更改为一个因子,如下所示。这将打印变量级别,但不打印变量名称。如果你想要变量名,那么你应该改变传递给strip.customstrip.names参数的值。

histogram(~ Width | Station * factor(Year), data = histDat,
    strip = strip.custom(bg = 'white', strip.names = c(TRUE, TRUE)),
    ylab = "Frequencies" ,tick = -1, col = 'grey')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多