R 为列表中的每个数据帧创建一个小表

R 为列表中的每个数据帧创建一个小表,r,dplyr,R,Dplyr,我有一个包含20个数据集的列表。 每个数据集基本上是: library(lubridate) Date <- c("2010-01-28", "2010-01-28", "2010-02-28", "2010-02-28", "2010-02-28", "2010-02-28", "2010-01-28"

我有一个包含20个数据集的列表。 每个数据集基本上是:

library(lubridate)

Date <- c("2010-01-28", "2010-01-28", "2010-02-28", 
           "2010-02-28", "2010-02-28", "2010-02-28", 
           "2010-01-28", "2010-01-28", "2010-02-28", 
           "2010-02-28")

Date <- as_date(Date)

Country <- rep("Bolivia", 10)

Value_A <- 1:10

df <- data.frame(Date, Country, Value_A)
库(lubridate)

日期您可以在数据帧列表(此处称为
lst
)上使用
lappy
,并使用单独的命名函数(或此处的匿名函数):

lappy(lst,函数(x){

nr您想如何在最终列表中处理
国家/地区
?您想在最终存储的列表中包含国家/地区作为元素名称?还是干脆忽略?干脆忽略:)。
Time <- c("Today", "Yesterday", "One week ago")
Value <- c(df$Value_A[nrow(df)], df$Value_A[nrow(df)-1], df$Value_A[nrow(df)-7])

table <- data.frame(Time, Value)
tibble(table)

   Time         Value
  <chr>        <int>
1 Today           10
2 Yesterday        9
3 One week ago     3
lapply(lst, function(x) {
  nr <- nrow(x)
  data.frame(
    Time = c("Today", "Yesterday", "One week ago"),
    Value = c(x[["Value_A"]][nr], x[["Value_A"]][nr-1], x[["Value_A"]][nr-7])
  )
})