我有一个从文件中读取的矩阵。我相信它由人物组成。该矩阵有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
}
但是在更改数据帧之前和更改数据帧之后的值是不同的。那么,我该怎么做才能获得原始值而不会出错?