我对paste()函数的行为方式感到困惑。我有一个带有以下各列的dplyr表:

Year    Month    DayofMonth
2001    May      21
2001    May      22
2001    June     9
2001    March    4

我想合并到一个称为“日期”的列中。我以为我使用了以下命令:
df2 = mutate(df, Date = paste(c(Year, Month, DayofMonth), sep = "-",))

不幸的是,这似乎连接了Year中的每个元素,然后是Month中的每个元素,然后是DayofMonth中的每个元素,因此结果看起来像这样:
2001-2001-2001-2001 ... May-May-June-March ... 21-22-9-4

我应该如何修改命令,以便粘贴函数分别遍历每一行?

P.S.这是Data Camp类(class)的一部分,因此,我正在通过服务器上安装的任何版本的R运行命令。

最佳答案

当前,您正在将所有列连接在一起。从c()调用中删除paste(),将它们逐个元素地粘贴在一起。

mutate(df, Date = paste(Year, Month, DayofMonth, sep = "-"))
#   Year Month DayofMonth         Date
# 1 2001   May         21  2001-May-21
# 2 2001   May         22  2001-May-22
# 3 2001  June          9  2001-June-9
# 4 2001 March          4 2001-March-4

关于dplyr中的R粘贴功能未按预期进行迭代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33530101/

10-12 17:49