使用 table 维护映射函数中的列名称

Mantain column names in map function with table

我在对象 HRdata 中存储了以下数据:

            ï..Employee_Name       PositionID              Position State  Zip
      1:   Adinolfi, Wilson  K         19  Production Technician I    MA 1960
      2: Ait Sidi, Karthikeyan         27                  Sr. DBA    MA 2148
      3:     Akinkuolie, Sarah         20 Production Technician II    MA 1810
      4:          Alagbe,Trina         19  Production Technician I    MA 1886
      5:       Anderson, Carol         19  Production Technician I    MA 2169
     ---                                                                     
    307:        Woodson, Jason         20 Production Technician II    MA 1810
    308:     Ybarra, Catherine         19  Production Technician I    MA 2458
    309:      Zamora, Jennifer          6                      CIO    MA 2067
    310:           Zhou, Julia          9             Data Analyst    MA 2148
    311:         Zima, Colleen         19  Production Technician I    MA 1730

我正在使用映射函数 table data.frame 中每个变量的唯一实例。

HRtables <- map(tibble(HRdata), ~as.data.frame(sort(table(.x), decreasing = T, responseName = "n")))

列表很好,但输出不合我意:

    > HRtables$State
   .x Freq
1  MA  276
2  CT    6
3  TX    3
4  VT    2
5  AL    1
6  AZ    1
7  CA    1
8  CO    1
9  FL    1
10 GA    1
11 ID    1
12 IN    1
13 KY    1

有什么方法可以保留变量的原始名称而不是用 .x 替换它?

我想您可以使用 map2 传入 data.frame 的列 names。然后,您可以为 table 添加 dnn 参数,其中包含列名。也许这样的东西对你有用。

library(tidyverse)

map2(HRdata,
     names(HRdata),
     ~as_tibble(sort(table(.x, dnn = .y), decreasing = T)))