gpt4 book ai didi

r - 将栏目内容按组粘贴到新组中

转载 作者:行者123 更新时间:2023-12-04 00:50:20 25 4
gpt4 key购买 nike

这是我的数据框:

a <- data.frame(x=c(rep("A",2),rep("B",4)),
y=c("AA","BB","CC","AA","DD","AA"))

我想要的是按 x 对数据框进行分组,对于组中的每个成员(这里是 AB),我会喜欢将 y 列的内容粘贴到单个元素中,以 _ 分隔。我想按字母顺序对其进行排序并删除相同的字符。这是期望的结果:

out <- data.frame(x=c(rep("A",1),rep("B",1)),
y=c("AA_BB","AA_CC_DD"))

我尝试了以下代码,它产生了一条错误消息:

library(dplyr)

a %>% group_by(x) %>% mutate(y_comb=paste(as.character(sort(unique(y))))) %>%
slice(1) %>% ungroup()

最佳答案

我们得到 'x', 'y' 列的 distinct 元素(因为只有两列,只需对整个数据使用 distinct ),然后 按“x”、“y”列排列行,按“x”分组,通过collapse将“y”元素粘贴(str_c)到单个字符串中使用 _

library(dplyr)
library(stringr)
a %>%
distinct %>%
arrange(x, y) %>%
group_by(x) %>%
summarise(y = str_c(y, collapse="_"))

-输出

# A tibble: 2 x 2
# x y
#* <chr> <chr>
#1 A AA_BB
#2 B AA_CC_DD

OP 代码中的错误是因为 uniquelength 的差异,而 paste 本身没有任何作用。我们需要collapse(或sep - 在本例中为collapse)。 mutate 讲究的是返回与原始数据行数相同的lengthsummarise 不是

关于r - 将栏目内容按组粘贴到新组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67153333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com