如何将所有整数值标记为"-1“;在R工作室?

如何将所有整数值标记为"-1“;在R工作室?,r,rscript,R,Rscript,在R studio中,什么是等效的SQL server isnumeric函数。我正在尝试将一个SQL逻辑迁移到r studio,我有一个列,其中包含Char值和Int值,现在我只想获取Int值,并在r data.table中将它们更新为-1。请帮我解决这个问题 我将结果作为图像附加,列“A”值是当前值,我希望具有类似列B的值 我认为如果你对整数特别感兴趣,那么上面的问题是以下问题的重复: if条件类似于x==round(x,0)。如果值是整数,而不是双精度或其他非数值类,则会出现这种情况。在

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

我将结果作为图像附加,列“A”值是当前值,我希望具有类似列B的值


我认为如果你对整数特别感兴趣,那么上面的问题是以下问题的重复:


if条件类似于x==round(x,0)。如果值是整数,而不是双精度或其他非数值类,则会出现这种情况。

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

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

gsub(T, -1, sapply(example, is.numeric))
另外,请注意,在R
中,数值
整数
不同

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

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

最后,我通过以下步骤解决了这个问题

  • 使用下面的脚本捕获所有数值以分隔数据表
    CustomDerivedL2AMID欢迎来到StackOverflow!我想我在下面有一个答案给你,但是下次请按照和标签描述的代码/数据提问。请仅使用屏幕截图来显示一些固有的视觉和非平行的内容,如绘图或GUI菜单。
    ifelse(is.na(as.integer(x)),x,-1)
    ,其中
    x
    是您的列数据。感谢您的帮助。不幸的是,我无法解决这个问题。当我使用下面的语句“sub(T,-1,sappy(dimcombinededduser$DRVDEUL2AMID,is.numeric))”时,它将“FALSE”作为结果集,这意味着它将所有整数值视为字符。如果我将列转换为数字,它会将所有值更新为“-1”,而不是整数值。我可以在脱机状态下共享一些示例记录。当硬编码值并解析它时,同一语句工作正常,但当我在列中运行同一语句时,它不工作。有什么我需要明确检查的吗?
    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"