【发布时间】:2015-03-04 14:31:09
【问题描述】:
如何使下面的函数更快,对于较大的数据集完成 sapply 需要很长时间?
这是我在以下代码中尝试的内容:
- 从字符串中提取一个数字。
- 因为提取的数字可能是 1 位或 2 位数字。因此,我使用了控制结构。
- 我在函数中使用了索引来运行这个函数,这使得这个操作太长了。
请提出替代方案。
- 数据集列
c<-NULL
c$sub<-substr(rt404$secs.1.,6,7)
c$secs<-NA
c<-as.data.frame(c)
subfun<-function(i,data){
if (nchar(as.character(data[i,8]))==7) c[i,2]<-substr(data[i,8],6,6)
else c[i,2]<-substr(data[i,8],6,7)
}
c$seconds<-sapply(1:(length(c[,1])),subfun,data=rt502)
【问题讨论】:
-
请使其可重现。输入丢失。