将ID的所有条目存储在列表中的列表中

发布于 2025-02-12 07:23:51 字数 486 浏览 3 评论 0原文

因此,假设我有一些简单的数据如下:

ID   value  character
001      A        JABA
002      B        FABA
001      B        RABA
003      D        RIBI
003     TT        LENI
004      A        LENT
001      A        TATA
004      N        YAYA
004      N        YANA

我想做的(使用tidyverse/dplyr)是在整个表中创建这些ID及其值的汇总表。如果用户具有值的重复,则只能出现一次。

预期输出

ID   values
001  [A,B]
002  [B]
003  [D,TT]
004  [A,N]

不过分依附于格式,但您会得到这个想法:)

So let's say I have some simple data as follows:

ID   value  character
001      A        JABA
002      B        FABA
001      B        RABA
003      D        RIBI
003     TT        LENI
004      A        LENT
001      A        TATA
004      N        YAYA
004      N        YANA

And what I want to do (using tidyverse/dplyr) is to create a summarized table of these IDs and their values across the entire table. If the user has duplicates of a value, it should only appear once.

Expected Output

ID   values
001  [A,B]
002  [B]
003  [D,TT]
004  [A,N]

Not overly attached to format but you get the idea :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

输什么也不输骨气 2025-02-19 07:23:52
library(dplyr)
df %>%
  group_by(ID) %>%
  distinct(value) %>%
  summarize(val = paste(value, collapse = ", "))

# A tibble: 4 × 2
     ID val  
  <int> <chr>
1     1 A, B 
2     2 B    
3     3 D, TT
4     4 A, N 
library(dplyr)
df %>%
  group_by(ID) %>%
  distinct(value) %>%
  summarize(val = paste(value, collapse = ", "))

# A tibble: 4 × 2
     ID val  
  <int> <chr>
1     1 A, B 
2     2 B    
3     3 D, TT
4     4 A, N 
梦幻的味道 2025-02-19 07:23:52

如果您不需要串联的字符串,而是独特值的向量

tibble(
    id=c(1,1,1,2), 
    value=letters[c(1,1,2,3)]) %>% 
    print() %>% 

# A tibble: 4 x 2
#      id value
#   <dbl> <chr>
# 1     1 a    
# 2     1 a    
# 3     1 b    
# 4     2 c 

    group_by(id) %>% 
    summarise(across(everything(), ~list(unique(.)))) %>% 
    print() %>% 

# A tibble: 2 x 2
#      id value    
#   <dbl> <list>   
# 1     1 <chr [2]>
# 2     2 <chr [1]>

    deframe()

# 

如果您不需要串联的字符串,而是独特值的向量

1` # [1] "a" "b" # #

如果您不需要串联的字符串,而是独特值的向量

2` # [1] "c"

if you don't need a concateneted string but a vector of unique values

tibble(
    id=c(1,1,1,2), 
    value=letters[c(1,1,2,3)]) %>% 
    print() %>% 

# A tibble: 4 x 2
#      id value
#   <dbl> <chr>
# 1     1 a    
# 2     1 a    
# 3     1 b    
# 4     2 c 

    group_by(id) %>% 
    summarise(across(everything(), ~list(unique(.)))) %>% 
    print() %>% 

# A tibble: 2 x 2
#      id value    
#   <dbl> <list>   
# 1     1 <chr [2]>
# 2     2 <chr [1]>

    deframe()

# 

if you don't need a concateneted string but a vector of unique values

1` # [1] "a" "b" # #

if you don't need a concateneted string but a vector of unique values

2` # [1] "c"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文