如何将数组拆分为单独的数组(R)?

时间:2016-01-16 17:40:35

标签: arrays r

我有阵列:

>cent
       b    e          r    f
A19 60.46   0.77    -0.12   1
A15 16.50   0.53    0.08    2
A17 2.66    0.51    0.20    3
A11 36.66   0.40    -0.25   4
A12 38.96   0.91    0.23    1
A05 0.00    0.29    0.01    2
A09 3.40    0.35    0.03    3
A04 0.00    0.25    -0.03   4

有人请问我如何将这个数组分成4个独立的数组,其中最后一列«f»是标志?结果我想看到:

>cent1
       b    e          r    f
A19 60.46   0.77    -0.12   1
A12 38.96   0.91    0.23    1
>cent2
       b    e          r    f
A15 16.50   0.53    0.08    2
A05 0.00    0.29    0.01    2
….

我应该使用for循环并检查标志“f”还是存在内置函数?感谢。

1 个答案:

答案 0 :(得分:1)

我们可以使用split创建list data.frames

 lst <- split(cent, cent$f)

注意:这里我假设“分数”和“是一个data.frame。如果是matrix

 lst <- split(as.data.frame(cent), cent[,"f"])

通常,完成大部分分析就足够了。但是,如果我们需要在全局环境中创建多个对象,我们可以使用list2env(不推荐)

 list2env(lst, paste0("cent", seq_along(lst)), envir= .GlobalEnv)