如何根据单行数据创建新行?

问题描述 投票:0回答:1

我的数据(df)包含每行代表不同学校的数据。每所学校都有自己的 ID 号、未通过数学GCSE 的学生人数、通过的人数以及参加GCSE 的人数。

例如学校用

学校ID 失败 通过 总计 城市 %FSM
1 12 43 55 N 23

我想用这些数据做两件事:

  1. 计算一下城乡学校的通过率是否存在显着差异
  2. A beta 回归:通过率 ~ 城市 + %FSM

我相信要做到这一点,我需要有效地将学校水平的数据转化为学生水平的数据。所以现在有 55 行 ID 为 1,还有一个新的 pass 列,其中 12 行表示“N”,43 行表示“Y”。

如何使用 R 来实现这个新数据集?我有大约 3200 行(即目前唯一的学校 ID,因此需要能够为所有学校自动执行此操作的代码)。

r dataframe mutate
1个回答
0
投票

你可以使用

uncount
:

library(tidyverse)
df %>%
  pivot_longer(cols = c(pass, fail)) %>%
  uncount(value)
© www.soinside.com 2019 - 2024. All rights reserved.