使用 lapply 将列添加到数据框列表

Adding a column to a list of dataframe with lapply

我有一个大型面板数据,其中包含每个年月的省份。我想 运行 通过数据框列表(我基于此初始数据框创建)的函数,以便使用此函数的输入为每个数据框获取一个新列。但是,当我使用 运行 代码时,新列并没有出现。这是代码:

> head(dataSPEI)
# A tibble: 6 x 11
  adm1    year month prov_code mean_temperaturec neighboors   province_name avgpreci longitude latitude   PET
  <chr>  <dbl> <dbl> <chr>                 <dbl> <chr>        <chr>            <dbl>     <dbl>    <dbl> <dbl>
1 TUR034  1978     1 TR100                  5.61 TR100, TR21~ Istanbul        170.        28.8     41.2     0
2 TUR034  1978     2 TR100                  7.48 TR100, TR21~ Istanbul         88         28.8     41.2     0
3 TUR034  1978     3 TR100                  8.55 TR100, TR21~ Istanbul         71         28.8     41.2     0
4 TUR034  1978     4 TR100                 11.6  TR100, TR21~ Istanbul         88.7       28.8     41.2     0
5 TUR034  1978     5 TR100                 16.6  TR100, TR21~ Istanbul         33.2       28.8     41.2     0
6 TUR034  1978     6 TR100                 20.8  TR100, TR21~ Istanbul          5.30      28.8     41.2     0

dat.s <- split(dataSPEI, dataSPEI$prov_code)

lapply(dat.s, function(x) {
  x$PET <- thornthwaite(x$mean_temperaturec, x$latitude[1])
  return(x)
  })

有人知道我做错了什么吗?

尝试将 lapply 调用的结果分配给一个对象;在这种情况下,您可以分配回原始数据帧列表

dat.s<-lapply(...)