【发布时间】:2019-03-09 19:03:57
【问题描述】:
如何使用 R 语言编写一个仅从整数列表中返回奇数的函数? 到目前为止我试过这个
function3 <- function(x){
x<-as.integer(x)
if (x %% 2 ==1) {
return(x)
}
}
但它不适用于列表或向量,而且我真的不知道如何更改我的代码,因为“if”会抱怨条件 >“has length > 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)。) -
非常感谢,这是一个错字,这解释了第一条错误消息。现在我的代码适用于单个整数;我想使用列表(向量)并让我的函数只返回列表中的奇数元素,但我真的不知道该怎么做。
-
我的评论在前 28 个字符中有答案。您唯一需要添加的是是否需要转换为整数。
-
这个问题至少有一部分与stackoverflow.com/q/23316161/3358272 和stackoverflow.com/q/14170778/3358272 重复。您最初关于如何返回奇数的问题不足以第一次知道它是重复的。