R语言用tidy语法将sapply输出转dataframe并修改列名移除索引
实现方法
你可以直接用tidyverse体系的dplyr+tidyr语法一步生成目标格式,不需要先走sapply生成中间表再转换,代码如下:
library(tidyverse) # 把df替换为你的实际数据集名 unique_count <- df %>% summarise(across(everything(), n_distinct)) %>% pivot_longer(cols = everything(), names_to = "col", values_to = "count")
如果你已经生成了行索引为原列名、计数字段为.的中间表,可以用下面的代码转换:
# 把inter_df替换为你的实际中间表名 unique_count <- inter_df %>% rownames_to_column(var = "col") %>% rename(count = ".")
效果验证
以R内置数据集mtcars为例,运行第一种方法得到的结果片段如下:
# A tibble: 11 × 2 col count <chr> <int> 1 mpg 25 2 cyl 3 3 disp 27 4 hp 22 5 drat 22
内容的提问来源于stack exchange,提问作者Eisen
相关产品推荐
相关产品推荐

