从大型现有df中提取R中的新df

从大型现有df中提取R中的新df,r,R,在R中,我尝试使用我称之为“gorilla”的df,并通过列标识符创建四个新的dfs。“gorilla”电子表格有一个名为“order”的列,该列的值为1、2、3和4。我想创建一个只带有“1”值的新df,另一个只带有“2”值的df,等等。这样做的最佳方法是什么?如果您这样做: list2env(设置名称(拆分(gorilla,gorilla$order),粘贴0(“gorilla”,1:4)), envir=globalenv()) 然后,您的工作区中将有4个数据帧,分别称为gorilla1、

在R中,我尝试使用我称之为“gorilla”的df,并通过列标识符创建四个新的dfs。“gorilla”电子表格有一个名为“order”的列,该列的值为1、2、3和4。我想创建一个只带有“1”值的新df,另一个只带有“2”值的df,等等。这样做的最佳方法是什么?

如果您这样做:

list2env(设置名称(拆分(gorilla,gorilla$order),粘贴0(“gorilla”,1:4)),
envir=globalenv())
然后,您的工作区中将有4个数据帧,分别称为
gorilla1
gorilla2
gorilla3
gorilla4

例如,如果我们有此数据集:

set.seed(100)
大猩猩数据顺序
#> 1  -0.50219235     3
#> 2   0.13153117     4
#> 3  -0.07891709     2
#> 4   0.88678481     1
#> 5   0.11697127     4
#> 6   0.31863009     3
#> 7  -0.58179068     3
#> 8   0.71453271     4
#> 9  -0.82525943     2
#> 10 -0.35986213     1
我们可以做到:

list2env(设置名称(拆分(gorilla,gorilla$order),粘贴0(“gorilla”,1:4)),
envir=globalenv())
#> 
现在我们可以看到这些对象可用:

大猩猩1 #>数据顺序 #> 4 0.8867848 1 #> 10 -0.3598621 1 大猩猩2 #>数据顺序 #> 3 -0.07891709 2 #> 9 -0.82525943 2 大猩猩3 #>数据顺序 #> 1 -0.5021924 3 #> 6 0.3186301 3 #> 7 -0.5817907 3 大猩猩4 #>数据顺序 #> 2 0.1315312 4 #> 5 0.1169713 4 #> 8 0.7145327 4 请注意,在大多数情况下,最好将数据帧保存在列表中:

gorillas <- split(gorilla, gorilla$order)

gorillas选择
分组

library(dplyr)
gorillas <- gorilla %>%
               group_split(order)
库(dplyr)
大猩猩%
分组(订单)

这些都非常有用!我只是查看了我的gorilla df,发现我的“Order”列中的值不是数字——例如,这是我的“Order”列中的一个值:“HH-LH-HL-LL”。是否有一种方法可以使此代码适用于我希望分离此df的感兴趣列中的非数值?