gpt4 book ai didi

r - 整洁 : create key without rowwise()?

转载 作者:行者123 更新时间:2023-12-01 10:19:27 29 4
gpt4 key购买 nike

有没有一种方法可以不使用 rowwise() 来创建 key

非常感谢任何指针。

df <- tibble(grp1=rev(LETTERS[1:5]),grp2=letters[11:15],grp3=LETTERS[1:5],
value=rnorm(5,10,10))

df %>% rowwise %>% mutate(key=paste(sort(c(grp1, grp2)), collapse="")) %>% ungroup()
  grp1  grp2  grp3  value             key  
<chr> <chr> <chr> <chr> <chr>
1 E k A -3.73984194875213 AE
2 D l B 3.25846392371014 BD
3 C m C 3.62405652088127 CC
4 B n D 6.41520621902784 BD
5 A o E 20.1892413026407 AE

更新:tibble 包含多个字符向量,但 key 应该从 grp1grp3 列生成>。

最佳答案

使用 purrr::pmap_chr :

library(tidyverse)
df %>% mutate(key=pmap_chr(.[c("grp1","grp3")],~paste(sort(c(...)), collapse="")))
# # A tibble: 5 x 5
# grp1 grp2 grp3 value key
# <chr> <chr> <chr> <chr> <chr>
# 1 E k A 22.0150932758833 AE
# 2 D l B 2.24725610156698 BD
# 3 C m C -6.2414882455089 CC
# 4 B n D 22.5699168856552 BD
# 5 A o E -6.21443670571301 AE

在基础 R 中你可以这样做:

transform(df, key=mapply(function(...) paste(sort(c(...)), collapse=""), grp1, grp3)

关于r - 整洁 : create key without rowwise()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55456651/

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