【发布时间】:2019-06-12 12:36:46
【问题描述】:
我在处理 R 中的数据时遇到问题。我在这项工作中需要的是通过链接中的示例数据来操作数据。当我尝试这样做时,我尝试使用 dplyr 包,但它没有用。所以我想用for循环来做。
我想要的正是这个:
我想保持 A、B、C、D、E 类别固定,并将其旁边月份的数据放在一起。像 1990 年 1 月、1990 年 2 月、....、1990 年 12 月、1991 年 1 月、1991 年 2 月、...、1991 年 12 月。这些月份将并排并以列的形式出现。由于某些年份没有特定类别的数据,因此应在与这些类别对应的月份中给出“0”值。我应该如何为此编写一个 for 循环?
提前感谢您的帮助。
【问题讨论】:
-
请提供您的数据
dput而不是图片。 -
请以可重现的方式提供您的数据,例如执行
dput(data)并粘贴结果。如果太长,可以试试dput(head(data)) -
你是说你只想要 5 行,然后每个月/年组合的列?如果是这样,我实际上会避免使用 forloop 并继续使用 dplyr。您可以在数据上使用
dplyr::gather来获得 4 列:年份、类别、月份和数据值。然后您可以使用mutate创建一个新变量dplyr::mutate(year_month = paste0(year,"-",month)),然后使用dplyr::spread获得您要查找的输出。