如何在 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 布尔值, 但您可以使用 sub
或 gsub()
使其成为 -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 中的 numeric
与 integer
不同。
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 内部数据类型。
我终于按照以下步骤解决了这个问题。
使用以下脚本捕获所有数值以分隔数据table
CustomDerivedL2AMID <- (subset(DimCombinedEnduser$DRVDEUL2AMID, grepl('^\d+$',DimCombinedEnduser$DRVDEUL2AMID)))
图书馆(data.table)
HandleDerivedL2AMID <-data.table(CustomDerivedL2AMID)
将 HandleDerivedL2AMID table 结果与原始数据 table 匹配并将所有值替换为 -1。
DCE$DRVDEUL2AMID <- 替换(DCE$DRVDEUL2AMID,DCE$DRVDEUL2AMID %in% HandleDerivedL2AMID$CustomDerivedL2AMID,'-1')
现在我只能看到字符值。 DRVDEUL2AMID 下的数据集不再有数值。
什么是等效的 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)。如果值是整数而不是双精度或其他非数字 类.
,则这将为 TRUER 中也有数据类型工具(如 SQL 和其他语言),例如 R 中的 is.numeric()
和 is.integer()
。通常这些 return 布尔值, 但您可以使用 sub
或 gsub()
使其成为 -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 中的 numeric
与 integer
不同。
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 内部数据类型。
我终于按照以下步骤解决了这个问题。
使用以下脚本捕获所有数值以分隔数据table CustomDerivedL2AMID <- (subset(DimCombinedEnduser$DRVDEUL2AMID, grepl('^\d+$',DimCombinedEnduser$DRVDEUL2AMID))) 图书馆(data.table) HandleDerivedL2AMID <-data.table(CustomDerivedL2AMID)
将 HandleDerivedL2AMID table 结果与原始数据 table 匹配并将所有值替换为 -1。 DCE$DRVDEUL2AMID <- 替换(DCE$DRVDEUL2AMID,DCE$DRVDEUL2AMID %in% HandleDerivedL2AMID$CustomDerivedL2AMID,'-1')
现在我只能看到字符值。 DRVDEUL2AMID 下的数据集不再有数值。