小编Vas*_*tis的帖子

如何在 R 中将字符参数(十进制数)转换为数字?

例如,我想将数字转换167009345.8167009345.8.

我用过很多方法,但都有问题。

例如,

x <- "167009345.8"
class(x) <- "numeric"`
Run Code Online (Sandbox Code Playgroud)

输出是167009346.

但我想要十进制数167009345.8

我也用过as.numeric,但也有同样的问题。

请你帮助我好吗?

r numeric character converters

4
推荐指数
1
解决办法
1万
查看次数

如何计算R中向量中按顺序排列的相同元素的数量?

我有一个像这样的矢量:

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, …

r sum vector

3
推荐指数
1
解决办法
137
查看次数

标签 统计

r ×2

character ×1

converters ×1

numeric ×1

sum ×1

vector ×1