我有这样一个字符向量:
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发布于 2015-05-16 14:13:34
您可以尝试以下几种方法:
split(x=a, f=rep(seq_along(Length), Length))f必须和x一样长(如果它的长度是x的一个或一个除法器,它将被回收)。
发布于 2015-05-16 14:27:14
您可以使用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" https://stackoverflow.com/questions/30276678
复制相似问题