re:使用dataframe的值减去静态值

时间:2014-03-03 21:31:14

标签: r for-loop dataframe warnings static-variables

我在另一篇文章中谈过这个问题,但我没有明确地解释自己,道歉,我是新来的。 我遇到的问题似乎是一个小问题,但我无法看到我做错了什么。 首先,我有这个DatFrame,其中有一系列时间(以毫秒为单位),这个数据帧的长度可以改变,因为信息是动态的:

    ts
1   1393867136438
2   1393867136438
3   1393867136407
4   1393867136438
5   1393867136423
6   1393867136438
7   1393867136438

我有以下功能,我想要执行此操作: 我想扣除1392217780000,Dataframe“ts”之前的每个位置,我将根据数据帧的大小得到X结果,我想在一个向量中保护结果然后我传递给Dataframe。

get_ms_ts_list<-function(ts_list){
  ms_ts_list <- vector()
  static_num <- 1392217780000
  for (i in 1:length(ts_list[,1])){
    ms_ts_list[i] <- static_num-ts_list[i,1]
  }  
return(as.data.frame(ms_ts_list))
}

当我使用这个功能时,我获得了这些警告,它生成了我在这里放了很多“Na”的数据框,我不明白我做错了什么?任何的想法 ?感谢

Warning messages:
1: In Ops.factor(static_num, ts_list[i, 1]) : - not meaningful for factors
2: In Ops.factor(static_num, ts_list[i, 1]) : - not meaningful for factors
3: In Ops.factor(static_num, ts_list[i, 1]) : - not meaningful for factors
4: In Ops.factor(static_num, ts_list[i, 1]) : - not meaningful for factors
5: In Ops.factor(static_num, ts_list[i, 1]) : - not meaningful for factors
6: In Ops.factor(static_num, ts_list[i, 1]) : - not meaningful for factors
7: In Ops.factor(static_num, ts_list[i, 1]) : - not meaningful for factors



    ms_ts_list
1   NA
2   NA
3   NA
4   NA
5   NA
6   NA
7   NA

2 个答案:

答案 0 :(得分:0)

ts_list不是数字。这是一个因素。您可以通过以下方式将其更改为数字:

as.numeric(levels(ts_list))[ts_list] 

details)。

答案 1 :(得分:0)

我有答案

get_ms_ts_list<-function(ts_list){
  ms_ts_list <- vector()
  static_num <- 1392217780000
  #as.numeric(levels(ts_list))[ts_list]
  for (i in 1:length(ts_list[,1])){
    ms_ts_list[i] <- (static_num)-(as.numeric(as.character(ts_list[i,1])))
  }
  return(as.data.frame(ms_ts_list))
}

非常感谢