我希望将两个函数之一应用于向量元素。选择使用哪个函数是基于向量的值。
具体来说:假设所有日期都在 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)
你能提出什么建议来避免它们(它们 = 匿名函数)?