问题描述
我有一个数据框列表(dflist)和要与每个数据框(实际)进行比较的数据
数据外观示例:
dflist[['2Source'}}
Chem 1 Chem 2
.01 .02
.02 .03
.01 .03
actual
Chem 1 Chem 2
.01 .02
.03 .02
.01 .04
我想针对另一张表中的同一列绘制每列,因此,dflist [['2Source']] [Chem 1]对比实际[Chem 1],对于chem2。我的实际数据有18种化学物质,所以我正在尝试用lapply编写一些东西来看起来全部。
par(mfrow=c(3,4))
Chemnames <- names(dflist[['2Source']])
baseplot <- function(x,y,name) {
plot(x,main = name)
abline(lm(y~x))}
lapply(seq_along(dflist),function(i)
mapply(function(x,name) {
plot(x,main = names(Chemnames(name)))
abline(lm(y~x))},x = actual,y = dflist[[i]]))
这是我当前的代码,似乎可以正常运行,减去标签,我无法弄清楚。
解决方法
也许这就是您想要的:
dflist <- list()
dflist$`2Source` <- data.frame(
`Chem 1` = c(.01,.02,.01),`Chem 2` = c(.02,.03,.02))
actual <- data.frame(
`Chem 1` = c(.01,.04))
par(mfrow=c(3,4))
baseplot <- function(x,y,name) {
plot(x,main = name)
abline(lm(y ~ x))
}
# Just to check that we get the correct plots
baseplot(actual$Chem.1,dflist$`2Source`$Chem.1,"Chem.1")
baseplot(actual$Chem.2,dflist$`2Source`$Chem.2,"Chem.2")
# Now with lapply
lapply(dflist,function(df) mapply(baseplot,x = actual,y = df,name = names(df)))
#> $`2Source`
#> $`2Source`$Chem.1
#> NULL
#>
#> $`2Source`$Chem.2
#> NULL