我有一个R
函数,它根据原始数据生成并返回(a)列表和(b)测试数据分区的列表。
我已将此功能应用于R
iris
数据集。然后我将列车数据分区提供给lda model。截断的输出和错误消息(来自lda
部分)如下所示。
以下是代码段:
myfunc <- function(rawdata,) {
....
return(list(train,test))}
dfs = create_data_partition(mydf)
dfs[1]
dfs[2]
control <- trainControl(method="cv", number=10)
metric <- "Accuracy"
set.seed(7)
fit_lda <- train(Species~., data=dfs[1], method="lda", metric=metric, trControl=control)
这是输出:
[[1]]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
.
.
150 5.9 3.0 5.1 1.8 virginica
[[1]]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
18 5.1 3.5 1.4 0.3 setosa
19 5.7 3.8 1.7 0.3 setosa
.
.
125 6.7 3.3 5.7 2.1 virginica
134 6.3 2.8 5.1 1.5 virginica
138 6.4 3.1 5.5 1.8 virginica
Error in eval(expr, envir, enclos) : object 'Species' not found
Calls: train ... eval -> <Anonymous> -> model.frame.default -> eval -> eval
Execution halted
我认为问题是dfs[1]
不是dataframe
- 而是在它前面有[[1]]
。这是我在函数myfunc
中returned multiple values的方式的工件 - 我认为return(list(train,test))
格式不正确,但我不确定为什么会发生这种情况。
问题
在调用返回多个值的R
函数(在列表中)之后,有没有办法分别访问返回的值?
答案 0 :(得分:1)