R 转换数字-从浮点数修剪整数部分

R 转换数字-从浮点数修剪整数部分,r,decimal,R,Decimal,给定一列数据(类型为39600.432、39600.433等),我想去掉数字的整数部分,只保留小数(将39600.432转换为432,将39600.433转换为433)。我该怎么做呢?您正在寻找楼层功能。但是你也可以把写成.integer。假设你的列是向量x > x <- c(39.456, 976.902) > x <- x - as.integer(x) > x [1] 0.456 0.902 >x [1] 0.456 0.902 这应该行得通。然后,只需乘

给定一列数据(类型为39600.432、39600.433等),我想去掉数字的整数部分,只保留小数(将39600.432转换为432,将39600.433转换为433)。我该怎么做呢?

您正在寻找
楼层
功能。但是你也可以把
写成.integer

假设你的列是向量x

> x <- c(39.456, 976.902)
> x <- x - as.integer(x)
> x
[1] 0.456 0.902
>x
[1] 0.456 0.902
这应该行得通。然后,只需乘以1000即可将当前x转换为整数。如果希望3.9变为9,则需要更多的处理

> x <- 1000*x
> x
[1] 456 902
>x
[1] 456 902

希望有帮助

下面是一种使用正则表达式的方法

g<-c(134.3412,14234.5453)
r<-regexpr("[0-9]+$",g)
as.numeric(regmatches(g,r))

g许多好答案,这里还有一个使用正则表达式的答案

> g <- c(134.3412,14234.5453)
> gsub("^[^\\.]*\\.", "", g)
[1] "3412" "5453"
>g gsub(“^[^\\.]*\\.,”,g)
[1] "3412" "5453"
这应该可以做到:

g <- c(134.3412,14234.5453)
h <- floor(g)
g - h

g要在不使用减法或正则表达式的情况下剥离整数部分,可以使用模运算符

x <- (10000:10010)/100
x
## [1] 100.00 100.01 100.02 100.03 100.04 100.05 100.06 100.07 100.08 100.09 100.10
x %% 1
## [1] 0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10

x我想
r@DWin谢谢你接电话。我已经相应地更新了我的答案。谢谢你们所有人的快速和伟大的答案!!我想我会使用第一个。然后你能“勾选”接受它作为答案,并回答关于123.400等于4或400的问题的重要评论。为什么以及如何工作。请在下面的回答中给出解释。h是从g向下舍入的整数向量。然后从g中减去h,得到小数点。
在字符类中出现时不需要转义。是要将39600.400转换为4,还是400?400是我要找的