【发布时间】:2021-10-16 15:07:40
【问题描述】:
我正在尝试将数据从一列移动到另一列,因为基础表单填写不正确。
在表格中,它会询问有关家庭的信息,并询问每个成员的年龄 (AGE) 和性别 (SEX),每个家庭最多允许 5 人。但是有些用户填写了人 1,3 和 4 的信息,但没有填写人 2 的任何信息,因为他们错误地填写了人 2,划掉了详细信息并将人 2 的详细信息填入了人 3 的框等。
数据是这样的(这个数据中ref 1和5是正确的,其他都是不正确的)
df <- data.frame(
ref = c(1, 2, 3, 4, 5, 6),
AGE1 = c(45, 36, 26, 47, 24, NA),
AGE2 = c(NA, 24, NA, 13, 57, 28),
AGE3 = c(NA, NA, 35, NA, NA, 26),
AGE4 = c(NA, NA, 15, 11, NA, NA),
AGE5 = c(NA, 15, NA, NA, NA, NA),
SEX1 = c("M", "F", "M", "M", "M", NA),
SEX2 = c(NA, "M", NA, "F", "F", "F"),
SEX3 = c(NA, NA, "M", NA, NA, "M"),
SEX4 = c(NA, NA, "F", "F", NA, NA),
SEX5 = c(NA, "F", NA, NA, NA, NA)
)
这是当前表格的样子 (我已将 NA 替换为 - 以方便阅读)
| ref | AGE1 | AGE2 | AGE3 | AGE4 | AGE5 | SEX1 | SEX2 | SEX3 | SEX4 | SEX5 |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 45 | - | - | - | - | M | - | - | - | - |
| 2 | 36 | 24 | - | - | 15 | F | M | - | - | F |
| 3 | 26 | - | 35 | 15 | - | M | - | M | F | - |
| 4 | 47 | 13 | - | 11 | - | M | F | - | F | - |
| 5 | 24 | 57 | - | - | - | M | F | - | - | - |
| 6 | - | 28 | 26 | - | - | - | F | M | - | - |
但我希望它看起来像这样
| ref | AGE1 | AGE2 | AGE3 | AGE4 | AGE5 | SEX1 | SEX2 | SEX3 | SEX4 | SEX5 |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 45 | - | - | - | - | M | - | - | - | - |
| 2 | 36 | 24 | 15 | - | - | F | M | F | - | - |
| 3 | 26 | 35 | 15 | - | - | M | M | F | - | - |
| 4 | 47 | 13 | 11 | - | - | M | F | F | - | - |
| 5 | 24 | 57 | - | - | - | M | F | - | - | - |
| 6 | 28 | 26 | - | - | - | F | M | - | - | - |
有没有办法使用dplyr 来纠正这个问题?如果没有,R中是否有另一种方法来纠正数据
【问题讨论】:
标签: r dplyr data-cleaning columnsorting