首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据列表的长度拆分字符向量

如何根据列表的长度拆分字符向量
EN

Stack Overflow用户
提问于 2015-05-16 14:09:51
回答 2查看 106关注 0票数 3

我有这样一个字符向量:

代码语言:javascript
复制
a<-c("tanaman","cabai","banget","hama","sakit","tanaman","koramil","nogosari",
    "melaks","ecek","hama","tanaman","padi","ppl","ds","rambun") 

我想根据列表的长度将字符向量分割成列表,如下所示:

代码语言:javascript
复制
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的长度

代码语言:javascript
复制
Length <- sapply(split.char, length)
for(i in Length){
  split(a, Length(i))
 } 

但是我没有得到想要的输出,我经常收到这样的警告消息:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-16 14:13:34

您可以尝试以下几种方法:

代码语言:javascript
复制
split(x=a, f=rep(seq_along(Length), Length))

f必须和x一样长(如果它的长度是x的一个或一个除法器,它将被回收)。

票数 4
EN

Stack Overflow用户

发布于 2015-05-16 14:27:14

您可以使用relist,它将给'a‘与'split.char’类似的结构(包括length)。

代码语言:javascript
复制
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"  
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30276678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档