我有阵列:
>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”还是存在内置函数?感谢。
答案 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)