在 R 中使用带有对象向量的“lines”命令
Posted
技术标签:
【中文标题】在 R 中使用带有对象向量的“lines”命令【英文标题】:Use "lines" command with a vector of objects in R 【发布时间】:2015-06-12 14:03:35 【问题描述】:我正在使用 R 来分析红外光谱。我要做的是制作一个对象列表或向量,在本例中为 Spectras,并将它们绘制到同一个“窗口”中。
我将命令plot(Spectrum1,...)
用于第一个 Spectrum 和命令
lines(Spectrum2,...)
lines(Spectrum3,...)
...
对于以下光谱。这很好用,但我想知道是否可以制作光谱的列表或向量,例如
Spectras <- c(Spectrum2, Spectrum3,...)
或
Spectras <- list(Spectrum2, Spectrum3,...)
并将它们绘制在一个命令行中,例如:
lines(Spectras,..)
如果是列表,R 表示
'x' 是一个列表,但没有组件 'x' 和 'y'
如果我使用c()
命令执行此操作,它只会将光谱一个接一个地绘制出来。
一些想法,如何让它发挥作用?
【问题讨论】:
【参考方案1】:使用list
,然后使用lapply
或plyr::l_ply
函数。如果光谱列表被称为“光谱”,每个组件都是一个矩阵或数据框,列 x 和 y:
lapply(Spectra, lines)
或者
plyr::l_ply(Spectra, lines)
或者,使用 ggplot2:
library("ggplot2")
library("plyr")
SpecDf <- as.data.frame(do.call("rbind", Spectra))
SpecDf$SpectrumNumber <- rep(1:length(Spectra), plyr::laply(Spectra, nrow))
ggplot(SpecDf, aes(x = x, y = y, colour = SpectrumNumber)) + geom_line()
【讨论】:
以上是关于在 R 中使用带有对象向量的“lines”命令的主要内容,如果未能解决你的问题,请参考以下文章