【发布时间】:2019-10-11 13:34:21
【问题描述】:
考虑以下数据框:
data_frame(
col1 = c("2017", "June", "New", 10, 30),
col2 = c("2018", "July", "Old", 20, 50),
name = c(NA, NA, NA, "dog", "cat")
)
# A tibble: 5 x 3
col1 col2 name
1 2017 2018 NA
2 June July NA
3 New Old NA
4 10 20 dog
5 30 50 cat
我想把它转换成这个输出:
## Year Month Type name Amount
## 2017 June New dog 10
## 2018 July Old dog 20
## 2017 June New cat 30
## 2018 July Old cat 50
我尝试过更长时间地使用枢轴,但它很难处理多个 行 以及处理 NA 的死区。
【问题讨论】:
-
也许我的咖啡还没有开始,但我没有遵循重塑这一点的逻辑。您如何将名称列与其他列匹配,以及您对 NA 的计划是什么?
-
你实际上有两个不同的数据集在两个不同的方向上挤在一起。 Year/Month/Type 数据按行排列,然后是两行 dog/cat 数据按列排列。需要大量的特殊处理才能将它们分开并将它们重新格式化为更可行的东西,以至于我怀疑您的示例的解决方案是否适用于更大的数据集。 TLDR;您需要先分离和/或重新格式化源数据,然后再尝试对其进行转换。