Как я могу использовать список целых чисел в качестве входных данных для функции одного целого числа и получить список в качестве выходных данных? - PullRequest
0 голосов
/ 02 апреля 2020

Извиняюсь за задание тривиального вопроса, но я в тупике. Вот ситуация:

  • У меня есть функция трех входов fishCounter(data, x, y), где data - матрица, а x и y - целые числа.
  • fishCounter в памяти и работает совершенно нормально, когда я вызываю его вручную (например, fishCounter(matrix(1:4,4,4), 1, 4)). Его выходные данные - одно целое число.
  • Соответствующие данные и значение x находятся в памяти. x это просто 3, и мы назовем данные trout.
  • Я хочу, чтобы R выкладывал список результатов для каждого значения y от 1 до 20. Грубо говоря, я хочу это fishCounter(trout, 3, 1:20).
  • Способ, которым R дает мне эти данные (например, массив, вектор, список и т. Д. c), не представляет интереса, я просто хочу вывод, однако могу его получить.
  • Все, что я пытался получить, провалилось. Конечно, я мог бы использовать для l oop и добавить это все к вектору, но это кажется слишком большим усилием.
  • Моя память настаивает на том, что существует очень простой способ чтобы получить то, что я после. Я уверен, что какая-то версия replicate, apply или lapply сделает эту работу.
  • Мне нужна только одна функция, которая даст мне этот результат. Например, я был удивлен, когда lapply(c(1:19), fishCounter(trout, 3, y) не работал.
  • Библиотеки не нужны, и мне не нужно кодировать какие-либо новые функции. Моя память настаивает на том, что я либо просто забыл функцию, встроенную в R, либо забыл термин, который мгновенно получил бы ответ от поисковой системы, либо я полностью неправильно понял документацию по трем функциям, которые я перечислено ранее.

Что я забыл?

1 Ответ

1 голос
/ 02 апреля 2020

Может быть, вы можете попробовать lapply, как показано ниже, т.е.

lapply(1:20, function(y) fishCounter(trout, 3, y))

или Vectorize для вашей функции fishCounter, то есть

Vectorize(fishCounter)(trout, 3, 1:20)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...