我有一个包含1000列的数据框。我试图一次循环10列,并使用seqdef()
包中的TraMineR
函数对这些列中的数据进行序列对齐。因此,我希望将此函数应用于第一次复飞中的第1-10列,以及第二次复飞中的第11-20列,一直到1000。
这是我正在使用的代码。
library(TraMineR)
by(df[, 1:10], seqdef(df))
但是,这只会在前10个循环然后停止。如何在10列的块中循环它?
答案 0 :(得分:2)
您可以使用mapply
执行此类操作,并设置要循环的列序列。
colpicks <- seq(10,1000,by=10)
mapply(function(start,stop) seqdef(df[,start:stop]), colpicks-9, colpicks)