![](/img/trans.png)
[英]R Add column into data.frame, that is in list of data.frames
[英]Add new column to each data.frame in list of data.frames
我有一個 data.frames 列表,並想使用 R 包 caret 在每個 data.frame, folds
創建一個新列。 到目前為止,我嘗試編寫一個自定義函數,然后使用 map 將其應用到我的列表中。 任何建議,將不勝感激。
library(caret)
one = airquality[1:10,]
two = airquality[11:20,]
listdf <- list(one, two)
foldfunc <- function(x) {
folds <- createFolds(1:nrow(x), k=10,list = F)
x$folds <- folds
}
map(listdf, foldfunc)
你只需要讓你的函數返回數據框:
foldfunc <- function(x) {
folds <- createFolds(1:nrow(x), k=10,list = F)
x$folds <- folds
return(x)
}
在您的代碼中,您的函數正在返回folds
。 由於您沒有明確說明要返回什么,該函數假定所需的結果是它計算的最后一件事,這就是您接收數值向量(由createFolds
計算的createFolds
)的原因。
如果你用你的函數嘗試print(foldfunc(listdf[[1]]))
,你會看到:
print(foldfunc(listdf[[1]]))
# [1] 1 2 3 4 5 6 7 8 9 10
在新版本中,將提供帶有folds
列的數據框。
使用tidyverse
library(dplyr)
library(purrr)
listdf <- map(listdf, ~ .x %>%
mutate(folds = createFolds(row_number(), k = 10, list = FALSE)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.