Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在数据框列表中打印列_R_Plot_Linear Regression - Fatal编程技术网

R 在数据框列表中打印列

R 在数据框列表中打印列,r,plot,linear-regression,R,Plot,Linear Regression,我有一个数据框列表data\u total\u split(125个数据框),我想在每个数据框中绘制X中的“年”列和Y中的“值”列。我该怎么做?我如何添加一个线性回归,例如y=ax+b,以获得两个新列表“a”和“b”,即每个数据帧中回归的值 > head(Data_total_split) $`Soil_Grass.Paris.AC-228` # A tibble: 5 x 6 Year Sample_type Locality Chemicals Measuring_Unit V

我有一个数据框列表
data\u total\u split
(125个数据框),我想在每个数据框中绘制X中的“年”列和Y中的“值”列。我该怎么做?我如何添加一个线性回归,例如y=ax+b,以获得两个新列表“a”和“b”,即每个数据帧中回归的值

> head(Data_total_split)
$`Soil_Grass.Paris.AC-228`
# A tibble: 5 x 6
   Year Sample_type Locality Chemicals Measuring_Unit  Values
  <dbl> <chr>       <chr>    <chr>    <chr>            <dbl>        
1  2016 Soil_Grass  Paris     AC-228   Mol/M2           277
2  2017 Soil_Grass  Paris     AC-228   Mol/M2           245
3  2018 Soil_Grass  Paris     AC-228   Mol/M2           195 
4  2019 Soil_Grass  Paris     AC-228   Mol/M2           190  
5  2020 Soil_Grass  Paris     AC-228   Mol/M2           160      

$`Fish.Paris.AC-228`
# A tibble: 5 x 6
   Year Sample_type Locality Chemicals Measuring_Unit  Values
  <dbl> <chr>       <chr>    <chr>    <chr>            <dbl>        
1  2016 Fish        Paris     AC-228   Mol/M2           125
2  2017 Fish        Paris     AC-228   Mol/M2           120
3  2018 Fish        Paris     AC-228   Mol/M2           117 
4  2019 Fish        Paris     AC-228   Mol/M2           107  
5  2020 Fish        Paris     AC-228   Mol/M2           100   
>头(数据\u总计\u分割)
$`Soil_Grass.Paris.AC-228`
#一个tibble:5x6
测量单位值的年份样本类型
1 2016巴黎土壤草AC-228 Mol/M2 277
2 2017巴黎土壤草AC-228 Mol/M2 245
3 2018巴黎土壤草AC-228 Mol/M2 195
4 2019巴黎土壤草AC-228 Mol/M2 190
5 2020巴黎土壤草AC-228 Mol/M2 160
$`Fish.Paris.AC-228`
#一个tibble:5x6
测量单位值的年份样本类型
1 2016巴黎鱼AC-228 Mol/M2 125
2 2017年巴黎鱼AC-228 Mol/M2 120
3 2018巴黎鱼AC-228 Mol/M2 117
4巴黎AC-228 Mol/M2 107
5 2020鱼巴黎AC-228 Mol/M2 100

您可以试试这个。希望这能有所帮助(
DFList
是您的列表):

库(ggplot2)
#资料

DFList(1)编写一个函数,为每个数据帧创建所需的绘图,然后将函数应用到列表中,或(2)将行绑定到单个数据帧中,然后使用
示例类型定义面。您可以使用
geom_smooth
绘制回归线。首先,感谢您的帮助,它工作得非常完美!您知道是否有可能获得一个包含每个绘图回归的“a”和“b”值的列表吗?@Sylvain您可以使用以下命令获得包含coefs的数据框:
dfcoefs非常感谢您的帮助和快速回答。最后一个问题:如何为每个绘图添加标题?我尝试了
ggtitle(name(Data_total_split[x])
但是我得到了“无效的下标类型'list'”@Sylvain如果你想添加年份作为标题,那么在
geom平滑后添加到
myplot
+ggtitle(unique(x$year))
library(ggplot2)
#Data
DFList <- list(structure(list(Year = 2016:2020, Sample_type = structure(c(1L, 
1L, 1L, 1L, 1L), .Label = "Soil_Grass", class = "factor"), Locality = structure(c(1L, 
1L, 1L, 1L, 1L), .Label = "Paris", class = "factor"), Chemicals = structure(c(1L, 
1L, 1L, 1L, 1L), .Label = "AC-228", class = "factor"), Measuring_Unit = structure(c(1L, 
1L, 1L, 1L, 1L), .Label = "Mol/M2", class = "factor"), Values = c(277L, 
245L, 195L, 190L, 160L)), row.names = c(NA, -5L), class = "data.frame"), 
    structure(list(Year = 2016:2020, Sample_type = structure(c(1L, 
    1L, 1L, 1L, 1L), .Label = "Fish", class = "factor"), Locality = structure(c(1L, 
    1L, 1L, 1L, 1L), .Label = "Paris", class = "factor"), Chemicals = structure(c(1L, 
    1L, 1L, 1L, 1L), .Label = "AC-228", class = "factor"), Measuring_Unit = structure(c(1L, 
    1L, 1L, 1L, 1L), .Label = "Mol/M2", class = "factor"), Values = c(125L, 
    120L, 117L, 107L, 100L)), row.names = c(NA, -5L), class = "data.frame"))

#Function
myplot <- function(x)
{
  y <- ggplot(x,aes(Year, Values)) +
    geom_point(color='blue') + 
    geom_smooth(method='lm', formula= y~1+x)
  return(y)
}
#Plots
l1 <- lapply(DFList,myplot)
lapply(l1,plot)