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)