在数据分析中,常常存在nest
比list
更有用的情况.
然而,在分析过程中,我有时希望将单个数据存储在具有适当名称的对象中,以保持代码简洁.
因此,我想以一种高效的方式创建这样的对象.
例如,请看下面的代码.
df <- iris |>
tidyr::nest(.by = Species)
setosa <- df[["data"]][df[["Species"]] == "setosa"][[1]]
versicolor <- df[["data"]][df[["Species"]] == "versicolor"][[1]]
virginica <- df[["data"]][df[["Species"]] == "virginica"][[1]]
创建于2024-02-04与reprex v2.1.0
我们要在这里创建的对象是setosa
、versicolor
和virginica
.
我总是必须明确地指定这一点吗?
有没有办法自动创建对象本身?
在数据分析中,通常情况下嵌套比列表更有用. 然而,在分析过程中,我有时希望将单个数据存储在具有适当名称的对象中,以保持代码简洁. 因此,我想以一种高效的方式创建这样的对象. 例如,请看下面的代码.
我们要在这里创建的对象是setosa
、versicolor
和virginica
.
我总是必须明确地指定这一点吗?
有什么方法可以递归地创建对象本身吗?
例如,下面的代码不能正常工作,但它是一种将要创建的对象的名称向量作为参数并使用该名称创建对象的方法.
df$Species |> map(\(x) {
sym(x) <- df[["data"]][df[["Species"]] == x][[1]]
})