R Studio中等效的SQL Server数字功能是什么。我正在尝试将SQL逻辑之一迁移到r studio,并且我有一列同时包含Char值和Int值的列,现在我只想获取int值并将其在R data.table中更新为-1。请帮助我解决问题。
我已将结果附加为图像,“ A”列的值是当前值,并且我希望具有类似B列的值。
答案 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)
最后,我按照以下步骤解决了这个问题。
使用以下脚本将所有数值捕获到单独的数据表中 CustomDerivedL2AMID <-(子集(DimCombinedEnduser $ DRVDEUL2AMID,grepl('^ \ d + $',DimCombinedEnduser $ DRVDEUL2AMID))) 库(data.table) HandleDerivedL2AMID <-data.table(CustomDerivedL2AMID)
将HandleDerivedL2AMID表结果与原始数据表匹配,并将所有值替换为-1。 DCE $ DRVDEUL2AMID <-替换(DCE $ DRVDEUL2AMID,DCE $ DRVDEUL2AMID%in%HandleDerivedL2AMID $ CustomDerivedL2AMID,'-1')
现在我只看到字符值。不再在DRVDEUL2AMID下设置数据的数值。