Если объявление функции не имеет параметров, то есть пустых, то оно принимает неопределенное количество аргументов. Если вы хотите, чтобы он не принимал никаких аргументов, измените его на:
int func(void);
Проблема заключается в использовании точки в качестве левой части оператора трубопровода, документация %>%
гласит:
Использование метки в качестве lhs Когда точка используется как lhs, результат будет функциональной последовательностью, то есть функцией, которая применяет всю цепочку правых частей по очереди к своему вводу. Смотрите примеры.
blockquote>Они даже предоставляют пример:
# Building unary functions with %>% trig_fest <- . %>% tan %>% cos %>% sin
Таким образом, в основном вы предоставляете функцию в качестве ввода для
paste
Попробуйте это:
df1 %>%
group_by(cat, cl) %>%
do(ids=paste( inner_join(.,df2) %>%
dplyr::pull(id), collapse=';'))
Не совсем точно, почему это работает, но это так.