我正在尝试从庞大的数据框中对数据框进行子集化,然后将该子集分组为多个小数据帧。但是,split()
函数不是从小数据帧返回信息,而是返回其父数据帧。
我可以使用iris
数据集重现它:
data("iris")
# Subset from the huge dataframe
sub_df = iris[grep("virginica", iris$Species), ]
# Group them by the `Species` column
split_list = split(sub_df, sub_df$Species)
length(split_list) # It gives 3
split_list
看起来像:
$setosa
[1] Sepal.Length Sepal.Width Petal.Length Petal.Width Species
<0 rows> (or 0-length row.names)
$versicolor
[1] Sepal.Length Sepal.Width Petal.Length Petal.Width Species
<0 rows> (or 0-length row.names)
$virginica
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
101 6.3 3.3 6.0 2.5 virginica
102 5.8 2.7 5.1 1.9 virginica
...
为什么split()
会生成setosa
和versicolor
个数据帧?