我有一個R
函數,它可以根據原始數據生成並返回列表(a)列表和(b)測試數據分區。R功能 - 從多個值列表中訪問單個返回值
我已將此功能應用於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
返回多個值(列表),是否有單獨訪問返回值的方法後?
請參閱:https://stackoverflow.com/questions/1169456/the-difference-between-and-notations-for-accessing-the-elements-of-a-lis –
謝謝。很簡單。答:我需要使用'data = dfs [[1]]'而不是'data = dfs [1]'。再次感謝! –
正確,但瞭解差異可能非常重要,所以請花時間在頭腦中清楚說明。 –