Как объединить функции в сюжете в R - PullRequest
0 голосов
/ 30 июня 2018

Это мой код: По сути, я хочу x ^ 2 [0; 10] & 6 [11, бесконечность]

random <-  function(x){
   if (any(x <= 10 )) {
     return (x**2)}
   else if (any(x > 10 )){
     return(6) }
 }

К сожалению, R использует только первую часть функции, когда я пытаюсь построить или интегрировать ее.

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 30 июня 2018

Ваша ошибка из-за использования функции any. Любое (x <= 10) всегда будет истинным, если одно значение в x меньше десяти, например, это будет верно для [1, 2, 10, 15, 30]. Из-за этого эта функция никогда не достигает второго оператора if. </p>

Что вы на самом деле хотите сделать, так это отобразить эту функцию. Сначала удалите «любые» вызовы в вашей функции. Затем передайте свою функцию (помеченную здесь как «случайная») в функцию карты. Функция карты - это динамическая функция, которая принимает в качестве аргументов функцию и список объектов (в данном случае номеров). Затем карта применяет функцию к каждому элементу указанного списка.

* 1005 Е.Г. *

Отображение [1, 2, 3, 4] с x ** 2 возвращает [1, 4, 9, 16]. Отображение [1, 5, 15, 20] со случайными возвратами [1, 25, 6, 6]

В R есть несколько различных функций отображения, поэтому посмотрите здесь , чтобы выбрать, какая из них лучше для вас. Некоторые даже включают операторы if, которые могут сэкономить ваше время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...