r - 如何识别列表中的所有数据框是否具有唯一 ID

标签 r list dataframe unique

我有一个 dfs 列表。我想知道是否有一种聪明的方法来判断 lst 中的每个 df 是否具有唯一的 ID,并创建如下汇总表”

enter image description here

示例数据:

lst<-list(structure(list(ID = c("Tom", "Jerry", "Mary"), Score = c(85, 
85, 96)), row.names = c(NA, -3L), class = c("tbl_df", "tbl", 
"data.frame")), structure(list(ID = c("Tom", "Jerry", "Mary", 
"Jerry"), Score = c(75, 65, 88, 98)), row.names = c(NA, -4L), class = c("tbl_df", 
"tbl", "data.frame")), structure(list(ID = c("Tom", "Jerry", 
"Tom"), Score = c(97, 65, 96)), row.names = c(NA, -3L), class = c("tbl_df", 
"tbl", "data.frame")))

最佳答案

我们可以遍历 list 并使用 n_distinct 检查

library(dplyr)
library(stringr)
library(purrr)
map_dfr(setNames(lst, str_c("df", seq_along(lst))), 
   ~.x %>% 
   summarise(UniqueID = c("N", "Y")[1 + (n_distinct(ID) == n())]), .id= 'Data')

-输出

# A tibble: 3 × 2
  Data  UniqueID
  <chr> <chr>   
1 df1   Y       
2 df2   N       
3 df3   N    

关于r - 如何识别列表中的所有数据框是否具有唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73664069/

相关文章:

python - 在 Python 中检查循环

python - 使用 Python 按列分组并求和另一列的内容

r - 捕获函数中输入值的名称

r - 在R中使用scale函数后如何获得中心和比例

r - 组合时间序列对象和列表:软件包“termstrc”

r - 将 YEARQT 格式的字符转换为 R 中的季度 "date"

python - 给定一个二进制字符串,返回位置 000 位于位置 0,001 位于位置 1。在函数中

python - 在 Pandas 数据框中转置一组数据

R 在尝试在 Mac 上绘图时卡住

R Shiny 动态过滤