📜  如何舍入所有数字列类型 - R 编程语言(1)

📅  最后修改于: 2023-12-03 15:09:14.366000             🧑  作者: Mango

如何舍入所有数字列类型 - R 编程语言

在 R 编程语言中,我们经常需要在代码中对数字进行舍入。本文将介绍如何对所有数字列类型进行舍入。

背景知识

在 R 中,常见的数字列类型有 numericinteger 两种。其中,numeric 数据类型表示实数,而 integer 数据类型表示整数。

舍入函数

在 R 中,有许多内置的函数可以对数字进行舍入。其中,最常用的函数包括:

  • round():四舍五入
  • floor():向下取整
  • ceiling():向上取整
  • trunc():截断

使用这些函数时,需要指定要进行舍入的数字和要保留的小数位数。

下面介绍如何对所有数字列类型进行舍入。

numeric 类型进行舍入

对于 numeric 数据类型,可以使用以下代码将其舍入到指定的小数位数:

# 将数字舍入到两位小数
x <- 3.1415926
round(x, 2)

输出结果为:

[1] 3.14

如果要将数据框中所有的 numeric 类型列都舍入到指定的小数位数,则可以使用以下代码:

# 创建数据框
df <- data.frame(a = c(1.2345, 2.3456, 3.4567),
                 b = c(4.5678, 5.6789, 6.7890))

# 将所有 numeric 类型列舍入到两位小数
df[, sapply(df, is.numeric)] <- round(df[, sapply(df, is.numeric)], 2)

# 输出结果
df

输出结果为:

      a     b
1  1.23  4.57
2  2.35  5.68
3  3.46  6.79
integer 类型进行舍入

对于 integer 数据类型,可以使用以下代码将其舍入到指定的位数:

# 将数字舍入到十位
x <- 12345
round(x, -1)

输出结果为:

[1] 12340

如果要将数据框中所有的 integer 类型列都舍入到指定的位数,则可以使用以下代码:

# 创建数据框
df <- data.frame(a = c(1234, 2345, 3456),
                 b = c(4567, 5678, 6789))

# 将所有 integer 类型列舍入到十位
df[, sapply(df, is.integer)] <- round(df[, sapply(df, is.integer)], -1)

# 输出结果
df

输出结果为:

     a    b
1 1230 4570
2 2340 5680
3 3460 6790
总结

本文介绍了如何对所有数字列类型进行舍入。通过使用内置的舍入函数,可以方便地将数字舍入到指定的位数。在对数据框进行舍入时,可以使用 sapply()is.numeric() 来选择要舍入的列。