簡體   English   中英

如何在循環中將向量拆分為更小的向量?

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

我在 R 中有一個 1253 個字符串的列表。

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

我想將它分成幾乎相等的部分,以便在每個子列表中都有 ~100 個值。

我能夠做到這一點

split(EMT, rep(1:13))

它分裂了我的清單。 但我認為我需要將這些子列表分配給變量,以便能夠將它們用於進一步分析。

我想要的輸出是

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

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

這是否有效:

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)

您可以創建每組 96 個元素的組並將數據拆分為列表。

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

通常,最好將數據保存在列表中,而不是在全局環境中有很多變量,但是,如果您仍然希望它們作為單獨的對象,請使用list2env

list2env(list_data, .GlobalEnv)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM