【问题标题】:R Function- Attempt to make it faster and AlternativesR功能-尝试使其更快和替代品
【发布时间】: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)

【问题讨论】:

  • 请使其可重现。输入丢失。

标签: r function sapply


【解决方案1】:
c$secs <- ifelse(nchar(as.character(rt502[,8]))==7,
                 substr(rt502[,8],6,6),
                 substr(rt502[,8],6,7))

这是你要找的吗?

【讨论】:

    猜你喜欢
    • 2014-10-17
    • 2020-06-03
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 2010-11-30
    相关资源
    最近更新 更多