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

时间:2018-08-26 16:20:26

标签: r rscript

R Studio中等效的SQL Server数字功能是什么。我正在尝试将SQL逻辑之一迁移到r studio,并且我有一列同时包含Char值和Int值的列,现在我只想获取int值并将其在R data.table中更新为-1。请帮助我解决问题。

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

enter image description here

3 个答案:

答案 0 :(得分:1)

R中也有数据类型工具(如SQL和其他语言),例如R中的GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") 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中的[1] "-1" "-1" "FALSE" "FALSE" 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()来回转换它们。另外,请注意,在这种情况下,R中的数据类型称为数据的一个或多个类,而R中的类型则指存储或R内部数据类型。

答案 1 :(得分:0)

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

您的条件是否类似于x == round(x,0)。如果值是整数,但不是双精度或其他非数字类,则为TRUE。

答案 2 :(得分:0)

最后,我按照以下步骤解决了这个问题。

  1. 使用以下脚本将所有数值捕获到单独的数据表中 CustomDerivedL2AMID <-(子集(DimCombinedEnduser $ DRVDEUL2AMID,grepl('^ \ d + $',DimCombinedEnduser $ DRVDEUL2AMID))) 库(data.table) HandleDerivedL2AMID <-data.table(CustomDerivedL2AMID)

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

现在我只看到字符值。不再在DRVDEUL2AMID下设置数据的数值。