两个简单的问题,我无法用简单的方式解决:

时间:2018-03-29 19:22:26

标签: r dplyr data-manipulation

1-)如果我有一个代表月份的列(M1,M2,M3,M4 ...... M12 ...... M1,M2,...),如何使用一个替换每个的函数(01, 02,03,04 ......)? 我试图使用mutate并一起替换,但没有成功。它只适用于ifelse函数,但它非常大。

我的第二个问题:

如果我的列中包含大量字符名称,如何在此列中过滤10个以上的名称?

我试过过滤器(列== c(“xx”,“xy”...)),但过滤结果不正确,我收到此消息:较长的对象长度不是较短对象长度的倍数< / p>

1 个答案:

答案 0 :(得分:1)

您可以使用DirectoryIndex index.php 内的recode()更改月份,如下所示:

mutate()

请注意,我将它们输入为字符串,因为这是您获得前导零的方式。

你的第二个问题尚不清楚,但似乎你想要做的是列出10个名字(总共10 + n个名字),只有那些?如果是这种情况,您可以将dat %>% mutate(month_column = recode(month, "M1" = "01", "M2" = "02", ... "M12" = "12")) filter()运算符一起使用。

%in%

您还可以在管道外提取矢量:

dat %>%
  filter(name_column %in% c("xx", "xy", ... ))

如果你把它全部组合起来应该是这样的:

vector_of_names <- c("xx", "xy", ... )
dat %>% filter(name_column %in% vector_of_names)