当我从矩阵更改为数据帧时,值在R中发生变化

时间:2015-07-13 09:43:06

标签: r matrix dataframe subtraction

我有一个从文件中读取的矩阵。我相信它由人物组成。该矩阵有4列,称为"类型","时间"," x值"," y值"。除了"键入"其他3列值'是数字。

我想做算术操作,比如减时间列。但它给了我:

二元运算符错误的非数字参数

我的数据是:

data <-as.matrix(read.table("data/firstdata.cal"))

以下是我的数据的一些内容

   Type     Time            X           Y
1   R   1383154550660   0.5638523   0.5157838
2   R   1383154550732   0.5637349   0.5152285
3   R   1383154550778   0.5634450   0.5154306
4   R   1383154550872   0.5631472   0.5145780
5   R   1383154550922   0.5633539   0.5150688
6   R   1383154550984   0.5630451   0.5148284

我通过写:

将其类更改为数据框
data<-as.data.frame(data)
data[, 2] <- as.numeric(as.character( data[, 2] ))

然后我想在这样的行之间进行减法:

i<-1
output<-matrix(0,nrow(data),ncol(data))

while(data[i,1]!='SS')
i<-i+1
temp<-0
while(i<nrow(data)){
if(data[i,1]=='SS'){
  temp<-data[i,3]
  output[i+1,1]<-temp
  n<-n-1
}
else {
  j<-i+1
  while(data[j,2]-data[i,2]<=700 )
  { 
    j<-j+1
  }  
  k<-0
  while (data[j,2]-data[i,2]<=2000){

    output[k,3]<-data[i,3]
    output[k,2]<-temp
    output[k,1]<-data[j,2]-data[i,2]
    j<-j+1
    k<-k+1
  }

}
i<-i+1 
}

但是在更改数据帧之前和更改数据帧之后的值是不同的。那么,我该怎么做才能获得原始值而不会出错?

0 个答案:

没有答案