根据数据框的列命名多个图

问题描述

我有一个数据框列表(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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...