我正在嘗試使用來自另一個嵌套列的最小值和最大值的資料創建一個新的嵌套列。
如果我嵌套IRIS資料Species并希望按Petal.Length每個的最小值和最大值創建一個新的嵌套資料框,Species我會怎么做?
到目前為止,我的代碼創建了一個函式來創建一個新的 data.frame 或 expand.grid,然后使用它來應用它mutate(...map(...
代碼/資料:
func = function(input){
data.frame(
min_to_max = seq(
from = min(.x$Petal.Length),
to = max(.x$Petal.Length),
by = 1
)
)
}
iris %>%
group_by(Species) %>%
nest() %>%
mutate(
expandDF = map(data, ~ func(.x))
)
uj5u.com熱心網友回復:
該函式應該與使用的引數名稱匹配,即input而不是.x
func <- function(input){
data.frame(
min_to_max = seq(
from = min(input$Petal.Length),
to = max(input$Petal.Length),
by = 1
)
)
}
-測驗
iris %>%
group_by(Species) %>%
nest() %>%
mutate(
expandDF = map(data, ~ func(.x))
) %>% ungroup
-輸出
# A tibble: 3 × 3
Species data expandDF
<fct> <list> <list>
1 setosa <tibble [50 × 4]> <df [1 × 1]>
2 versicolor <tibble [50 × 4]> <df [3 × 1]>
3 virginica <tibble [50 × 4]> <df [3 × 1]>
我們也可以在不使用mapie 的情況下做到這一點nest_by
iris %>%
nest_by(Species) %>%
mutate(expandDF = list(data.frame(min_to_max =
seq(from = min(data$Petal.Length), to = max(data$Petal.Length))))) %>%
ungroup
# A tibble: 3 × 3
Species data expandDF
<fct> <list<tibble[,4]>> <list>
1 setosa [50 × 4] <df [1 × 1]>
2 versicolor [50 × 4] <df [3 × 1]>
3 virginica [50 × 4] <df [3 × 1]>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/462252.html
上一篇:R:你如何按方差排序錯誤圖?
