使用具有固定值和减法的数据帧

时间:2014-02-25 23:50:01

标签: r for-loop dataframe rows

我对如何使用数据框有疑问。我有这个功能,我们花了一个数据帧只有一列。我想要在数据帧的每个位置的固定数和值之间进行减法。此减法的结果应存储在另一个数据框中。

 get_ms_ts_list<-function(ts_list){
    ms_ts_list <-nrow(ts_list)
    as.double(ts_list)
  for (i in 1:nrow(ts_list)){
    ms_ts_list[i]<-(1392217780000 - ts_list[i, ])
  }
  ms_ts_list
}

我收到错误类型 get_ms_ts_list(ts_list)中的错误: (list)对象不能被强制输入'double'

并且经过一些更改通常会给我一个

6:在Ops.factor(1,392,217,780,000,ts_list [i])中: - 对因素没有意义

2 个答案:

答案 0 :(得分:0)

看起来您有一个数据框(有一列),并且您希望从固定数字中减去此单列数据框中的值。你想要一个矢量作为结果

如果您的单列数据框为ts_list,并且您想要的结果为ms_ts_list,则可以使用以下代码:

ms_ts_list<-1392217780000 - ts_list[,1]

答案 1 :(得分:0)

你写的函数有几个问题,纠正的函数是:

    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-i
       }
       return(as.data.frame(ms_ts_list))
    }

   df <- data.frame(a=1:15)
   a <- get_ms_ts_list(df)

虽然您创建了一个double但没有将它分配给任何变量,所以不需要创建double。