R功能 - 尝试使其更快和替代

时间:2015-03-04 14:31:10

标签: r function sapply

如何使下面的功能更快,对于更大的数据集,完成蓝宝石需要太长时间?

以下是我在以下代码中尝试的内容:

  • 从字符串中提取数字。
  • 由于提取的数字可能是1或2位数。因此,我使用了控制结构。
  • 我正在使用带有该函数的索引来运行此函数,这使得此操作时间过长。

请建议替代方案。

  • 数据集列

enter image description here

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)

1 个答案:

答案 0 :(得分:1)

c$secs <- ifelse(nchar(as.character(rt502[,8]))==7,
                 substr(rt502[,8],6,6),
                 substr(rt502[,8],6,7))

这是你在找什么?