我正在编写一个令人困惑的宏来打印字符串字符。我知道具有运算符优先级和关联性的宏的陷阱,但无法找出正确的结果。
我搜索并知道数组下标运算符等效于将下标添加到数组名称(数组中第一个元素的地址),然后取消对结果地址的引用。
library(dplyr)
tt %>%
group_by(ID) %>%
summarise(Outcome = if (any(Registered == "Yes"))
c("No", "Yes")[(which.max(Registered == "Yes") <
which.max(Type == "Review"))+1] else "No")
# ID Outcome
# <chr> <chr>
#1 P40 Yes
#2 P42 No
#3 P43 Yes
#4 P44 No
我用了纸和铅笔,然后进行了宏扩展并缩小了结果的表达。我的输出为“ C”,但在IDE(MS Visual Studio和CodeBlocks)上的打印输出为“ D”,就像我在s [3]上调用了宏一样。