简体   繁体   English

如何在循环中将向量拆分为更小的向量?

[英]How to split a vector into smaller vectors in a loop?

I have a list of 1253 strings in R.我在 R 中有一个 1253 个字符串的列表。

EMT
"1", "2", "3", ..., "1252", "1253" 

I want to split it into almost equal parts to have ~100 values in each sublist.我想将它分成几乎相等的部分,以便在每个子列表中都有 ~100 个值。

I was able to do split with this我能够做到这一点

split(EMT, rep(1:13))

It splits my list.它分裂了我的清单。 But I think I need to assign those sublists to variables to be able to use them for further analysis.但我认为我需要将这些子列表分配给变量,以便能够将它们用于进一步分析。

My desired output is我想要的输出是

EMT1
"1", "2", ..., "96"

EMT2
"97", "98", ..., "192"
...
EMT13
"1157", ..., "1253" 

Will this work:这是否有效:

EMT <- list(1:1253)
EMT <- sapply(EMT, as.character)
mylist <- split(EMT, rep(1:13))
names(mylist) <- lapply(names(mylist), function(x) paste0('EMT',x))
names(mylist)
 [1] "EMT1"  "EMT2"  "EMT3"  "EMT4"  "EMT5"  "EMT6"  "EMT7"  "EMT8"  "EMT9"  "EMT10" "EMT11" "EMT12" "EMT13"
 list2env(mylist, .GlobalEnv)

You can create groups of 96 elements each and split the data into list.您可以创建每组 96 个元素的组并将数据拆分为列表。

EMT <- as.character(1:1253)
list_data <- split(EMT, paste0('EMT', ceiling(seq_along(EMT)/96)))

Usually, it is better to keep data in a list instead of having lot of variables in global environment however, if you still want them as separate objects use list2env .通常,最好将数据保存在列表中,而不是在全局环境中有很多变量,但是,如果您仍然希望它们作为单独的对象,请使用list2env

list2env(list_data, .GlobalEnv)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM