代码之家  ›  专栏  ›  技术社区  ›  TheGoat

从R中的列表中提取信息

  •  1
  • TheGoat  · 技术社区  · 3 年前

    我需要从R中的列表中提取特定信息。我的数据是“Benford”对象,使用 as_tibble()

    我的数据如下:

    library(dplyr)
    library(purrr)
    library(benford.analysis)
    
    # read data
    data = read.csv("https://www2.census.gov/programs-surveys/popest/datasets/2010-2019/counties/totals/co-est2019-alldata.csv", header = T)
    
    # ONLY SELECT THE NUMERIC COLUMN
    x <- data %>% 
      select(CENSUS2010POP)
    
    # SPLIT THE DATA INTO TWO GROUPS
    x$CITY <- "CITY_A"
    x[1500:3193,2] <- "CITY_B"
    
    # SPLIT THE DATA ON THE CITY VARIABLE
    dat_list <- split(x,x$CITY)
    
    # APPLY THE BENFORD ANALYSIS TO THE NUMERICAL VALUES PER GROUP
    output <- map(dat_list, ~benford(number.of.digits = 1, discrete = TRUE, sign = "positive", data = .x$CENSUS2010POP))
    

    我希望使用 CITY 名称,即。 CITY_A 在一列中 $ MAD.conformity 在列表中的每个元素的另一个中。

    关于如何从列表中提取这些元素并将其存储在数据帧中,有什么帮助吗?

    1 回复  |  直到 3 年前
        1
  •  1
  •   zephryl    3 年前

    您可以使用 purrr::map_dfr() 提取 MAD.conformity 在每次迭代中,行绑定结果,并添加 .id 列,其中包含的每个元素的名称 dat_list 自从 日期列表 由创建 split CITY ,名称已经对应于的级别 城市 (我不熟悉 Benford 对象,因此您可能需要调整 $MAD.conformity 索引。)

    output <- map_dfr(
      dat_list,
      ~ benford(
          number.of.digits = 1, 
          discrete = TRUE, 
          sign = "positive", 
          data = .x$CENSUS2010POP
        )$MAD.conformity,
      .id = "CITY"
    )