例如,我想将数字转换167009345.8为167009345.8.
我用过很多方法,但都有问题。
例如,
x <- "167009345.8"
class(x) <- "numeric"`
Run Code Online (Sandbox Code Playgroud)
输出是167009346.
但我想要十进制数167009345.8。
我也用过as.numeric,但也有同样的问题。
请你帮助我好吗?
我有一个像这样的矢量:
x<-c(1,1,1, -1, 1,1,1,1,1,1, -1,-1, 1,1, -1,-1,-1,-1,-1,-1,-1, 1)
我希望算法产生一个向量(3,1,6,2,2,7,1)
这意味着3个"1",1个"-1",6个"1"等...
我已经开发了以下算法,但它不适用于每个向量x,这可能是我将要有的.
y<-c(0)
q=0
z=0
w=0
e=1
if (x[1]==1)
{
q<-abs(sum(x[1:(min(which(x < 0))-1)]))
y[e]<-q
k=q+1
z<-abs(sum(x[k:min(which(x < 0))]))
e=e+1
y[e]<-z
k=k+z
r<-matrix(c(which(x < 0)))
w<-matrix(c(which(x > 0)))
while( k<22 )
{
if( all(r<k) )
{
z<-sum(x[k:22])
e=e+1
y[e]<-z
k=k+z
}else
{
z<-abs(sum(x[k:min(r[which(r > k)]-1)]))
e=e+1
y[e]<-z
k=k+z
}
if( all(w<k) )
{
z<-abs(sum(x[k:22]))
e=e+1
y[e]<-z
k=k+z
}else
{z<-abs(sum(x[k:min(w[which(w > k)]-1)]))
e=e+1
y[e]<-z
k=k+z
}
}}
Run Code Online (Sandbox Code Playgroud)
但对于矢量
x<-c(1,1,1, -1, 1,1,1,1,1,1, -1,-1, 1,1, …