簡體   English   中英

如何根據列表的長度拆分字符向量

[英]How to split a character vector based on length of a list

我有這樣的角色矢量:

a<-c("tanaman","cabai","banget","hama","sakit","tanaman","koramil","nogosari",
    "melaks","ecek","hama","tanaman","padi","ppl","ds","rambun") 

我想根據列表的長度將字符向量拆分為列表,如下所示:

split.char<-list(c("tanaman", "cabai"),c("banget", "hama", 
"penyakit", "tanaman"),c("koramil", "nogosari", "melaks", "pengecekan", "hama",
 "tanaman"  , "padi", "ppl", "ds", "rambun"))  

我正在嘗試使用sapply(split.char, length)來定義列表split.char長度

Length <- sapply(split.char, length)
for(i in Length){
  split(a, Length(i))
 } 

但我沒有得到所需的輸出,我不斷收到此警告消息:

1: In split.default(ok, Length) : data length is not a multiple of split variable
2: In split.default(ok, Length) : data length is not a multiple of split variable
3: In split.default(ok, Length) : data length is not a multiple of split variable

您可以嘗試以下方法:

split(x=a, f=rep(seq_along(Length), Length))

f必須與x具有相同的長度(如果它的長度為1或x的分隔符將被再循環)。

您可以使用relist ,它將為'a'提供與'split.char'類似的結構(包括length

relist(a, skeleton=split.char)
#[[1]]
#[1] "tanaman" "cabai"  

#[[2]]
#[1] "banget"  "hama"    "sakit"   "tanaman"

#[[3]]
#[1] "koramil"  "nogosari" "melaks"   "ecek"     "hama"     "tanaman" 
#[7] "padi"     "ppl"      "ds"       "rambun"  

暫無
暫無

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

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