使用apply

时间:2016-03-18 12:54:51

标签: r apply

我试图更新庞大数据集的两列(> 45毫米行)。 基本上列是字符格式,我试图将其转换为数字。 这是示例数据' s1':

id path convert               start                stop
1  1    0        05SEP2015:12:38:55  05SEP2015:12:38:55
2  1    0        09SEP2015:01:22:54  09SEP2015:01:22:54

我使用以下代码:

library(lubridate)

apply(s1, 1, function(row){

  s1$Start <- as.numeric(dmy_hms(row[4]))

  #Similarly code for stop column
  # s1$stop <- as.numeric(dmy_hms(row[5]

  return(s1)

})

基本上我想将开始文本转换为日期,然后将其更改为数字,然后将其替换为数据框本身。

所以我期待这样的输出:

[[1]]
id path convert       start                stop
1  1    0        1441456735  05SEP2015:12:38:55
2  1    0        1441761774  09SEP2015:01:22:54

但我得到了:

[[1]]
id path convert       start                stop
1  1    0        1441456735  05SEP2015:12:38:55
2  1    0        1441456735  09SEP2015:01:22:54
[[2]]
id path convert       start                stop
1  1    0        1441761774  05SEP2015:12:38:55
2  1    0        1441761774  09SEP2015:01:22:54

看起来它正在制作我不想要的数据框列表。

关于这一点的任何指示,因为我到目前为止还差不多。

1 个答案:

答案 0 :(得分:1)

为什么不

s1[,"start"] = as.numeric(dmy_hms(s1[,"start"]))

s1[,"stop"] = as.numeric(dmy_hms(s1[,"stop"]))