r - 根据列中的数字创建新行

标签 r

<分区>

我目前有一个包含数量的表格。

<表类="s-表"> <头> 身份证 代码 数量 <正文> 1 一个 1 2 B 3 3 C 2 4 D 1

有没有办法弄到这张 table ?

<表类="s-表"> <头> 身份证 代码 数量 <正文> 1 一个 1 2 B 1 2 B 1 2 B 1 3 C 1 3 C 1 4 D 1

我需要分解数量并有那么多行。

谢谢!!!!

最佳答案

已更新 现在我们已经将分离的折叠值存储到一个新列中:

library(dplyr)
library(tidyr)

df %>%
  group_by(ID) %>%
  uncount(Quantity, .remove = FALSE) %>%
  mutate(NewQ = 1)

# A tibble: 7 x 4
# Groups:   ID [4]
     ID Code  Quantity  NewQ
  <int> <chr>    <int> <dbl>
1     1 A            1     1
2     2 B            3     1
3     2 B            3     1
4     2 B            3     1
5     3 C            2     1
6     3 C            2     1
7     4 D            1     1

已更新 如果我们选择不使用折叠值替换现有的 Quantity 列。

df %>%
  group_by(ID) %>%
  mutate(NewQ = ifelse(Quantity != 1, paste(rep(1, Quantity), collapse = ", "),
                           as.character(Quantity))) %>%
  separate_rows(NewQ) %>%
  mutate(NewQ = as.numeric(NewQ))


# A tibble: 7 x 4
# Groups:   ID [4]
     ID Code  Quantity  NewQ
  <int> <chr>    <int> <dbl>
1     1 A            1     1
2     2 B            3     1
3     2 B            3     1
4     2 B            3     1
5     3 C            2     1
6     3 C            2     1
7     4 D            1     1

关于r - 根据列中的数字创建新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67633031/

相关文章:

java - 并行处理上的 Rserve/R 堆栈

r - 使用 R 找到总和小于给定数字的所有可能的 3 个数字组合

r - Knitr:spin - 如何添加文本而不手动添加 #' 每行?

r - 从几年每日温度的数据框中获取每月平均值

r - 如何在 R 中创建、构建、维护和更新数据码本?

r - lm.fit(x,y,offset = offset, single.ok,...) 中的错误 0 个使用 boxcox 公式的非 NA 情况

r - Y-break 与 R 的比例变化

R:在向量列表中查找共性并删除不常见的部分

旋转椭圆的标绘点得到一个圆

r - 如何用 R 包 xml 解析 xml/sbml?