【发布时间】:2023-02-04 15:36:46
【问题描述】:
我有一个包含三列年龄变量和两列活动状态的数据集。我想以一列显示年龄,一列显示活动状态。我想通过匹配相同的案例并保留不同的案例来做到这一点。
这是可重现数据的示例
df <- structure(list(fruits = c(0, 0, 0, 0, 1), veggies = c(0, 1, 1,
1, 1), age = structure(c(7L, 8L, 9L, 10L, 6L), levels = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"
), class = "factor"), under30 = structure(c(1L, 1L, 1L, 1L, 1L
), levels = c("30 plus", "under 30"), class = "factor"), age30to64 = structure(c(2L,
2L, 2L, 1L, 2L), levels = c("under 30 or 65 plus", "age 30 to 64"
), class = "factor"), age65plus = structure(c(1L, 1L, 1L, 2L,
1L), levels = c("under 65", "65 plus"), class = "factor"), arthritis = structure(c(1L,
2L, 1L, 1L, 1L), levels = c("No arthritis", "Arthritis"), class = "factor"),
gender = structure(c(2L, 2L, 2L, 1L, 2L), levels = c("male",
"female"), class = "factor"), genhealth = structure(c(3L,
3L, 2L, 3L, 2L), levels = c("Excellent", "Very good", "Good",
"Fair", "Poor"), class = "factor"), education = structure(c(5L,
6L, 4L, 6L, 6L), levels = c("1", "2", "3", "4", "5", "6"), class = "factor"),
income = structure(c(8L, 8L, 7L, 6L, 8L), levels = c("1",
"2", "3", "4", "5", "6", "7", "8"), class = "factor"), active = structure(c(2L,
1L, 2L, 1L, 2L), levels = c("Not active", "Active"), class = "factor"),
active1 = structure(c(2L, 1L, 2L, 1L, 3L), levels = c("Low",
"Moderate", "Vigorous"), class = "factor"), bmi = c(18.2199993133545,
27.4599990844727, 21.9699993133545, 35.939998626709, 39.8600006103516
), bmicat = structure(c(1L, 3L, 2L, 4L, 4L), levels = c("Underweight",
"Normal", "Overweight", "Obese"), class = "factor"), activetimes = c(20,
0, 5, 0, 8), ageCat = structure(c(2L, 2L, 2L, 3L, 2L), levels = c("under30",
"age30to64", "over64"), class = "factor")), row.names = c(NA,
-5L), class = c("tbl_df", "tbl", "data.frame"))
我尝试了多种功能,例如粘贴和联合,但没有得到预期的结果。我期望的是单个垂直年龄列和单个垂直活动列。相同的案例需要匹配,不同的案例需要保留。
【问题讨论】:
-
您的可重现数据不可重现。
-
我做了一些编辑。这次应该工作
标签: r join merge multiple-columns