我在编写通过在另一个列表上应用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))
在功能之外,这种方法还可以,但是由于某种原因,我无法在这里使用它。 非常感谢您的帮助。
答案 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