基于观察名称的子集

Subset based on observation name

我有一个包含不同类别的观察值的变量。总共有 42 个(想想红色、蓝色、黄色和橙色;在颜色变量下...)。

我想对数据进行子集化,以便有 42 个不同的数据框,每个数据框都基于这些类别。所以会有一个红色、蓝色、黄色和橙色的数据框。

我的计划是使用 lapply 对所有数据框进行一些操作。

有几种方法可以做到这一点,但如果没有一段代码,也没有所需的输出,很难读懂您的想法并尝试猜测您的目的是什么。下次提供一个可重现的例子。无论如何,一种方法是使用 split(data, data$variable_color),其中 variable_color 是包含您要拆分的颜色的变量的名称。

这里是 R 中 mtcars 数据集的示例。

splitted <- split(mtcars, mtcars$cyl)

这给出了数据帧列表,例如您可以看到:

 class(splitted[["4"]])
[1] "data.frame"
for (x in unique(modshare$STCG.2.Commodity)) assign(paste0(x, 'modshare'), 
                                                    modshare[which(modshare$STCG.2.Commodity==x),,drop=FALSE])