根据应用于列的逻辑条件按行子集数据

时间:2014-06-13 08:53:04

标签: r matrix dataframe subset

这可能是一个微不足道的问题,但是我几天都没有在以前的讨论中找到有用的帮助。

我有一个像这样的data.frame:

pho 23 3 23 4 5 6 7 fat
pho 24 5 6 7 8 8 2 rew
pho 2 3 4 5 6 7 6 ogd
caf 23 34 5 6 78 4 tre
caf 45 56 76 6 5 5 tre
fra 3 4 5 6 2 4 rfe
fra 4 65 76 78 3 2 ytr
fra 54 6 7 8 23 5 rte

我想对data.frame进行子集化,以便仅将具有相似[1,1]元素的行保持在一起。我想将这些新的data.frame存储在一个列表中,其中每个元素都被称为每个data.frame的相应[1,1]对象。

示例输出

[[pho]]
pho 23 3 23 4 5 6 7 fat
pho 24 5 6 7 8 8 2 rew
pho 2 3 4 5 6 7 6 ogd

[[caf]]
caf 23 34 5 6 78 4 tre
caf 45 56 76 6 5 5 tre

[[fra]]
fra 3 4 5 6 2 4 rfe
fra 4 65 76 78 3 2 ytr
fra 54 6 7 8 23 5 rte

我想这样做是为了将函数应用于列表中的所有data.frames,只考虑某些列中的值。

e.g:

lapply(list.containing.dataframes, FUN)

我在其他问题上没有找到任何帮助,说实话,我没有取得任何进展报告的进展。 如果您能提供我可以用来解决问题的链接/手册/建议,我将非常感激。

谢谢

1 个答案:

答案 0 :(得分:3)

只需拆分数据框:

dflist <- split(df, df[,1])

创建单独的数据帧:

list2env(split(df, df[,1]), envir = .GlobalEnv)