r - 如何向 data.frame 的每组添加数字序列?

标签 r dplyr

我有一个美国邮政编码的数据框,我想在重复其余行的同时向每个唯一的邮政编码添加数字序列。现在,我的数据如下所示:

 zip   city        state_name   
  <chr> <chr>       <chr>        
1 01001 Agawam      Massachusetts
2 01002 Amherst     Massachusetts
3 01003 Amherst     Massachusetts
4 01005 Barre       Massachusetts
5 01007 Belchertown Massachusetts

对于每一行,我希望它看起来像这样,(对于每个邮政编码。)

 zip   city        state_name    Num
  <chr> <chr>       <chr>        
 01001 Agawam      Massachusetts .8
 01001 Agawam      Massachusetts 1.0
 01001 Agawam      Massachusetts 1.2
 01001 Agawam      Massachusetts 1.4

其余行依此类推。

此处的数据:

structure(list(zip = c("01001", "01002", "01003", "01005", "01007"
), city = c("Agawam", "Amherst", "Amherst", "Barre", "Belchertown"
), state_name = c("Massachusetts", "Massachusetts", "Massachusetts", 
"Massachusetts", "Massachusetts")), row.names = c(NA, -5L), class = c("tbl_df", 
"tbl", "data.frame"))

最佳答案

如果我理解您的问题,您可以使用 dplyr 中的 group_bysummarize 来完成此操作。

library("dplyr")

df |>
  group_by(across(everything())) |>
  summarize(Num=seq(0.8, 1.4, 0.2)) |>
  ungroup()

# A tibble: 20 × 4
   zip   city        state_name      Num
   <chr> <chr>       <chr>         <dbl>
 1 01001 Agawam      Massachusetts   0.8
 2 01001 Agawam      Massachusetts   1  
 3 01001 Agawam      Massachusetts   1.2
 4 01001 Agawam      Massachusetts   1.4
 5 01002 Amherst     Massachusetts   0.8
 6 01002 Amherst     Massachusetts   1  
 7 01002 Amherst     Massachusetts   1.2
 8 01002 Amherst     Massachusetts   1.4
 9 01003 Amherst     Massachusetts   0.8
10 01003 Amherst     Massachusetts   1  
11 01003 Amherst     Massachusetts   1.2
12 01003 Amherst     Massachusetts   1.4
13 01005 Barre       Massachusetts   0.8
14 01005 Barre       Massachusetts   1  
15 01005 Barre       Massachusetts   1.2
16 01005 Barre       Massachusetts   1.4
17 01007 Belchertown Massachusetts   0.8
18 01007 Belchertown Massachusetts   1  
19 01007 Belchertown Massachusetts   1.2
20 01007 Belchertown Massachusetts   1.4

关于r - 如何向 data.frame 的每组添加数字序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72222841/

相关文章:

r - 在大型 data.table 中按 .N 对多列进行子集化

r - dplyr 变异 : Excluding observations similar to the current one

r - 如何在 dplyr 中分组并获取离散列的相反值?

r - 如何将值向量作为 mutate 的参数传递?

r - R 中的分组和聚合

用于在一组字符串中查找最长的公共(public)起始子字符串的 R 实现

r - fread() 在读取小 txt 文件时崩溃

在多个数据框列中重新编码 NA

r - 提取 R 中列的最高和最低值以及行标识符

r - 创建一个列,其结果是 R 中其他两列的随机匹配