小编Łuk*_*yło的帖子

在管道操作符之后使用 ifelse

我希望将两个函数之一应用于向量元素。选择使用哪个函数是基于向量的值。

具体来说:假设所有日期都在 1919 年和 2018 年之间,假设您想将用两位数字编码的年份(如 '07' 表示 '2007' 和 '85' 表示 '1985')转换为四位数字。

因此,您必须将 1900 添加到大于 18 的数字,并将 2000 添加到其他数字。

现在我想用%>%运算符来做到这一点(以便mutate将来能够在statment 中使用它)。

这个:

c(18,20,21,15) %>% ifelse(.>18, .+1900, .+2000)
Run Code Online (Sandbox Code Playgroud)

产生一个错误:

Error in ifelse(., . > 18, . + 1900, . + 2000) : unused argument (. + 2000)
Run Code Online (Sandbox Code Playgroud)

我什至明白为什么:%>%强制向量c(18,20,21,15)用作ifelse.

我有一个使用匿名函数的解决方法:

c(18,20,21,15) %>% (function(x) ifelse(x>18, x+1900, x+2000))
[1] 2018 1920 1921 2015
Run Code Online (Sandbox Code Playgroud)

你能提出什么建议来避免它们(它们 = 匿名函数)?

r dplyr

4
推荐指数
1
解决办法
2298
查看次数

标签 统计

dplyr ×1

r ×1