如何在 R Studio 中将所有整数值标记为“-1”?

How to mark all integer values to "-1" in R Studio?

什么是等效的 SQL 服务器是 R studio 中的数字函数。我正在尝试将 SQL 逻辑之一迁移到 r studio 并且我有一个包含 Char 值和 Int 值的列,现在我只想获取 int 值并将它们更新为 R data.table 中的 -1 .请帮我解决问题。

我已将结果作为图片附上,"A" 列值是当前值,我希望有像 B 列那样的值。

我想如果你对整数特别感兴趣,那么上面的问题就是以下问题的重复: Check if the number is integer

您的 if 条件类似于 x == round(x, 0)。如果值是整数而不是双精度或其他非数字 类.

,则这将为 TRUE

R 中也有数据类型工具(如 SQL 和其他语言),例如 R 中的 is.numeric()is.integer()。通常这些 return 布尔值, 但您可以使用 subgsub() 使其成为 -1:

example <- list(123, 321, "not numeric", as.Date("2018/01/01"))

gsub(T, -1, sapply(example, is.numeric))
[1] "-1" "-1" "FALSE"   "FALSE"

此外,请注意 R 中的 numericinteger 不同。

example <- list(as.integer(123), 321, "not numeric", as.Date("2018/01/01"))
example[sapply(example, is.integer)] <- -1
example
[[1]]
[1] -1

[[2]]
[1] 321

[[3]]
[1] "not numeric"

[[4]]
[1] "2018-01-01"

您可以使用 as.numeric()as.integer() 来回转换它们。另外,请注意,在这种意义上的 R 数据类型被称为数据的 class 或 classes,而 R 中的类型指的是存储或 R 内部数据类型。

我终于按照以下步骤解决了这个问题。

  1. 使用以下脚本捕获所有数值以分隔数据table CustomDerivedL2AMID <- (subset(DimCombinedEnduser$DRVDEUL2AMID, grepl('^\d+$',DimCombinedEnduser$DRVDEUL2AMID))) 图书馆(data.table) HandleDerivedL2AMID <-data.table(CustomDerivedL2AMID)

  2. 将 HandleDerivedL2AMID table 结果与原始数据 table 匹配并将所有值替换为 -1。 DCE$DRVDEUL2AMID <- 替换(DCE$DRVDEUL2AMID,DCE$DRVDEUL2AMID %in% HandleDerivedL2AMID$CustomDerivedL2AMID,'-1')

现在我只能看到字符值。 DRVDEUL2AMID 下的数据集不再有数值。