R中列表元素绝对值的函数

k5ifujac  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(214)

我正在尝试创建一个R函数,它可以将值列表中的任何负值转换为正值:

x <- c(5,-8,11)

abs_function <- function(A){
  n <- nrow(A)
  for (i in n) {
    if (A[i,]<0) {-A}
    else if (A[i,]>0) {A}
  }
  return(A)
}

但当我尝试:

abs_tfn(x)

它返回:

[1]  5 -8 11

因此值-8不会转换为8。
我是不是漏掉了什么基本的东西?
提前感谢您的帮助。

8ulbf1ek

8ulbf1ek1#

对于 vector,有一个默认函数:abs(),所以你可以做abs(x)
对于一个列表x <- list(5, -8, 11),类似于下面的代码:

fun <- function(list) {
  for (i in 1:length(list)) {
    list[[i]] <- abs(list[[i]])
  }
  return(list)
}

fun(x)

相关问题