如何用for循环附加列表?

时间:2020-10-12 15:51:14

标签: r function loops

我在编写通过在另一个列表上应用for循环来输出列表的函数时遇到了问题。 我想将每个值除以列表的最大值,然后乘以100。

这是我尝试过的和我的数据:

bn<- function(x)
{result<- list()
 p<- max(x)
for (i in 1:NROW(x))
{c <- x[i]/p*100
result[[i]] <- c
}}

其中x是列表输入。

df<-structure(list(tt = c("a", "b", "c", "d"), pp = c(34, 35, 77, 23)), class = "data.frame", row.names = c(NA, -4L))

在功能之外,这种方法还可以,但是由于某种原因,我无法在这里使用它。 非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

尝试对您的功能进行此更改:

#Function
bn<- function(x)
{
  result<- list()
  p<- max(x)
  for (i in 1:NROW(x))
  {
    c <- x[i]/p*100
    result[[i]] <- c
  }
  return(result)
}
#Apply
bn(df$pp)

输出:

bn(df$pp)
[[1]]
[1] 44.15584

[[2]]
[1] 45.45455

[[3]]
[1] 100

[[4]]
[1] 29.87013