使用Apply来避免“条件的长度> 1,并且只会使用第一个元素”?

朝鲜蓟先生

我正在尝试定义分段函数,并且对单个输入也可以正常工作,但是当我尝试使用向量输入时,出现“条件的长度> 1并且仅将使用第一个元素”错误因为据我所知,它将标量传递给向量。

ex <- function(x){
  if (x < -1) {
    y <- (-2 * x) -2
    return(y)
  }
  else if (-1 <= x & x <= 1) {
    y <- 0
    return(y)
  }
  else if (1 < x){
    y <- (x * x) - 1
    return(y)
  }
}

谁能帮助我使用Apply函数来解决此问题?我想避免使用ifelse。

罗纳克·沙

如您所知,您的函数仅针对标量输入而不是向量编写。所以,

ex(10)
ex(12)

作品。但,

ex(c(10, 12))

没有。(实际上,在这种情况下,它会给出预期的输出并带有警告)


不更改功能的一种方法是使用 sapply

sapply(c(10, 12), ex)

或者您可以更改功能并使用ifelse适用于矢量的功能

ex1 <- function(x){
   ifelse(x < -1,(-2 * x) -2,
     ifelse(-1 <= x & x <= 1, 0,
       ifelse(1 < x,(x * x) - 1,NA)))
}

ex1(c(10, 12))

或搭配 dplyr::case_when

ex2 <- function(x){
   dplyr::case_when(x < -1 ~ (-2 * x) -2,
                   -1 <= x & x <= 1 ~ 0,
                    1 < x ~ (x * x) - 1)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

条件的长度> 1,并且仅将使用第一个元素(RE:miceadds,MIDS)

来自分类Dev

“条件的长度> 1,并且将仅使用第一个元素”错误

来自分类Dev

错误:条件的长度> 1,并且在r中仅使用第一个元素

来自分类Dev

解决方法:条件的长度> 1,并且仅使用第一个元素

来自分类Dev

使用if else循环时出现错误“条件的长度> 1,并且将仅使用第一个元素”

来自分类Dev

“条件的长度> 1,并且将仅使用第一个元素”在数据框上嵌套“ if else”的警告

来自分类Dev

在 if (wspolczynnik > waga_linkow[n]) { :条件长度 > 1 并且只使用第一个元素

来自分类Dev

使用gsub从字符串中删除模式:参数'pattern'的长度> 1,并且仅使用第一个元素

来自分类Dev

使用Linq遍历所有控件只会得到第一个控件

来自分类Dev

使用XPath提取第一个元素并抓取

来自分类Dev

使用RxJava获取GroupedObservable的第一个元素

来自分类Dev

使用QueryList给出第一个HTML元素

来自分类Dev

将两个PID的列表传递给xargs只会杀死使用ssh的第一个

来自分类Dev

使用jQuery查找元素的第一个动态类的每个第一个实例

来自分类Dev

使用SQLAlchemy获取第一个和最后一个元素

来自分类Dev

使用递归查找列表的第一个和最后一个元素

来自分类Dev

如何在 R 中列表的每个向量(不同长度)中附加第一个和最后一个元素,而不会使代码变慢?

来自分类Dev

使用CSS隐藏第一个元素以外的<th>个元素

来自分类Dev

GroupBy Column1,然后使用Column2上的第一个/最后一个元素获取所有元素(Python)

来自分类Dev

选择第一个使用libxml中的xPath验证条件的元素

来自分类Dev

仅选择第一个元素-使用XML :: Twig的条件

来自分类Dev

仅选择第一个元素-使用XML :: Twig的条件

来自分类Dev

即使模棱两可,意外的Bash Glob补全也会使用第一个匹配项

来自分类Dev

使用CSS3选择除第一个元素外的所有元素

来自分类Dev

查找带有类的第一个元素,使用类追加标题元素

来自分类Dev

在 json 元素数组上使用 Junit 断言在第一个元素上失败

来自分类Dev

使用Python Pandas减去列中的最后一个元素和第一个元素

来自分类Dev

从列表中的最后一个元素到第一个元素使用“ For Each”语句

来自分类Dev

如何使用 JavaScript 在第一个文本元素之后在链接内附加一个元素?

Related 相关文章

  1. 1

    条件的长度> 1,并且仅将使用第一个元素(RE:miceadds,MIDS)

  2. 2

    “条件的长度> 1,并且将仅使用第一个元素”错误

  3. 3

    错误:条件的长度> 1,并且在r中仅使用第一个元素

  4. 4

    解决方法:条件的长度> 1,并且仅使用第一个元素

  5. 5

    使用if else循环时出现错误“条件的长度> 1,并且将仅使用第一个元素”

  6. 6

    “条件的长度> 1,并且将仅使用第一个元素”在数据框上嵌套“ if else”的警告

  7. 7

    在 if (wspolczynnik > waga_linkow[n]) { :条件长度 > 1 并且只使用第一个元素

  8. 8

    使用gsub从字符串中删除模式:参数'pattern'的长度> 1,并且仅使用第一个元素

  9. 9

    使用Linq遍历所有控件只会得到第一个控件

  10. 10

    使用XPath提取第一个元素并抓取

  11. 11

    使用RxJava获取GroupedObservable的第一个元素

  12. 12

    使用QueryList给出第一个HTML元素

  13. 13

    将两个PID的列表传递给xargs只会杀死使用ssh的第一个

  14. 14

    使用jQuery查找元素的第一个动态类的每个第一个实例

  15. 15

    使用SQLAlchemy获取第一个和最后一个元素

  16. 16

    使用递归查找列表的第一个和最后一个元素

  17. 17

    如何在 R 中列表的每个向量(不同长度)中附加第一个和最后一个元素,而不会使代码变慢?

  18. 18

    使用CSS隐藏第一个元素以外的<th>个元素

  19. 19

    GroupBy Column1,然后使用Column2上的第一个/最后一个元素获取所有元素(Python)

  20. 20

    选择第一个使用libxml中的xPath验证条件的元素

  21. 21

    仅选择第一个元素-使用XML :: Twig的条件

  22. 22

    仅选择第一个元素-使用XML :: Twig的条件

  23. 23

    即使模棱两可,意外的Bash Glob补全也会使用第一个匹配项

  24. 24

    使用CSS3选择除第一个元素外的所有元素

  25. 25

    查找带有类的第一个元素,使用类追加标题元素

  26. 26

    在 json 元素数组上使用 Junit 断言在第一个元素上失败

  27. 27

    使用Python Pandas减去列中的最后一个元素和第一个元素

  28. 28

    从列表中的最后一个元素到第一个元素使用“ For Each”语句

  29. 29

    如何使用 JavaScript 在第一个文本元素之后在链接内附加一个元素?

热门标签

归档