Как я могу написать функцию, которая возвращает нечетные числа только из списка целых чисел, используя язык R? Пока я пробовал это
function3 <- function(x){ x<-as.integer(x) if (x %% 2 ==1) { return(x) } }
но это не работает для списков или векторов, и я действительно не знаю, как изменить свой код, так как «если» будет жаловаться на условие> «имеет длину> 1», и будет использоваться только первый элемент
function(x) x[ x %% 2 == 1 ]. Некоторые проблемы с вашим кодом: если x является вектором, тогда ваш if будет жаловаться на the condition has length > 1 and only the first element will be used, и, поскольку вы не вырезаете нечетные элементы, он возвращает входной аргумент. (Единственное изменение состоит в том, что я предполагаю, что вы хотите, чтобы он был целочисленным, хотя для этого вам действительно понадобилось бы x <- as.integer(x).) — person Lakhdar Mohamed Amine schedule 09.03.2019
Большое спасибо, это была опечатка, и этим объясняется первое сообщение об ошибке. Теперь, когда мой код работает с одним целым числом; Я хотел бы использовать списки (векторы) и чтобы моя функция возвращала только нечетные элементы списка, но я действительно не знаю, как это сделать. — person Lakhdar Mohamed Amine schedule 09.03.2019
В моем комментарии ответ состоит из первых 28 символов. Единственное, что вам нужно добавить, — это преобразовать в целые числа. — person Lakhdar Mohamed Amine schedule 09.03.2019
По крайней мере, часть этого вопроса является дубликатом stackoverflow.com/q/23316161/3358272 и stackoverflow.com/q/14170778/3358272. Ваш первоначальный вопрос о том, как вернуть нечетные числа, был недостаточен, чтобы знать, что это был дубликат в первый раз. — person Lakhdar Mohamed Amine schedule 09.03.2019
Источник: