R 如何从函数中的列表中提取元素
我试图从函数中的列表中提取元素R 如何从函数中的列表中提取元素,r,R,我试图从函数中的列表中提取元素 ```{r} Q7.4<-function (v1,v2){ mean<-mean(v1) median<-median(v1) variance<-var(v1) minimum<-min(v1) maximum<-max(v1) Coefficientofvariation<-sqrt(variance)/mean my.list<<-list(mean=mean,meadian
```{r}
Q7.4<-function (v1,v2){
mean<-mean(v1)
median<-median(v1)
variance<-var(v1)
minimum<-min(v1)
maximum<-max(v1)
Coefficientofvariation<-sqrt(variance)/mean
my.list<<-list(mean=mean,meadian=median,variance=variance,minimum=minimum,maximum=maximum,Coefficientofvariation=Coefficientofvariation)
my.list$v2
}
我得到空值。为什么会发生这种情况?该
$
将尝试查找列表
名称v2
。相反,使用substitute/deparse
将不带引号的输入转换为字符串,并使用[[
Q7.4<-function (v1,v2){
mean <- mean(v1)
median <- median(v1)
variance <- var(v1)
minimum <- min(v1)
maximum <- max(v1)
Coefficientofvariation <- sqrt(variance)/mean
my.list <- list(mean = mean,
median = median,
variance = variance,
minimum = minimum,
maximum = maximum,
Coefficientofvariation = Coefficientofvariation)
my.list[[deparse(substitute(v2))]]
}
$
将尝试查找列表名称v2
。相反,使用substitute/deparse
将不带引号的输入转换为字符串,并使用[
Q7.4<-function (v1,v2){
mean <- mean(v1)
median <- median(v1)
variance <- var(v1)
minimum <- min(v1)
maximum <- max(v1)
Coefficientofvariation <- sqrt(variance)/mean
my.list <- list(mean = mean,
median = median,
variance = variance,
minimum = minimum,
maximum = maximum,
Coefficientofvariation = Coefficientofvariation)
my.list[[deparse(substitute(v2))]]
}
@akrun的答案非常好。这里有一个补充答案
我们可以使用eval
+substitute
替换代码中的my.list$v2
,即
eval(substitute(v2), my.list)
@akrun的答案非常好。这里有一个补充答案
我们可以使用eval
+substitute
替换代码中的my.list$v2
,即
eval(substitute(v2), my.list)
谢谢,这很有道理。你能解释一下德帕斯和替补在做什么吗?很好的回答!每天都从你身上学到很多东西!投赞成票!谢谢,这很有道理。你能解释一下德帕斯和替补在做什么吗?很好的回答!每天都从你身上学到很多东西!投赞成票!这是一个很好的方式。这是一个很好的方式。