r - 如何在 R 中复制每个组级别的特定行数

标签 r

Here is my data:

对于每个 x1 级别,我尝试复制等于 number.class 的行数,并且我希望每行的长度类从 Lmin..cm 开始。至 Lmax..cm。每行增加 1。我想出了以下代码:

test<-A.M %>% filter(x1=="Crenimugil crenilabis")
for (i in 1:test$number.class){test<-test %>%  add_row()}
for (i in 1:nrow(test)){test[i,]=test[1,]}
  for (i in 1:nrow(test)){test$length.class[i]<-print(i+test$Lmin..cm.)}
  test$length.class<-test$length.class-1

这基本上有效并给了我预期的结果:2

但是,这个脚本不允许我为每个物种运行它。

谢谢。

最佳答案

在这里,我们可以使用 tidyr 中的 uncount 来复制行,按“x1”进行分组并变异“Lmin”。 .cm' 通过添加 row_number()

library(dplyr)
library(tidyr)
A.M %>%
    uncount(number.class) %>%
    group_by(x1) %>%
    mutate(`Lmin..cm.` = `Lmin..cm.` + row_number())

如果我们需要创建从 Lmin..cmLmax..cm 的序列,那么我们可以使用 uncount 而不是map2 创建 sequence,然后unnest

library(purrr)
A.M %>%
     mutate(new = map2(`Lmin..cm.`, `Lmax..cm`, ~ seq(.x, .y, by = 1)) %>%
    unnest(c(new))

关于r - 如何在 R 中复制每个组级别的特定行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63607295/

相关文章:

r - 如何根据列中的级别对重复值求和并输出计数表?

r - kmean 中簇面积的公式

r - 打包大数据集

r - 球体表面地理数据的插值

python - 如何允许用户选择文件?

r - R中的3类AUC计算(pROC包)

r - 为什么(或何时)Rscript(或更小)比 R CMD BATCH 更好?

r - 在 R 中使用 While 循环创建 n 个组合

r - 从数据框中有条件地选择重复测量

r - Knit 更改图像尺寸