繁体   English   中英

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

[英]How to mark all integer values to “-1” in R Studio?

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

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

在此处输入图片说明

R中也有数据类型工具(如SQL和其他语言),例如R中的is.numeric()is.integer() 。通常这些返回布尔值,但是您可以使用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中的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中的数据类型称为数据的一个或多个类,而R中的类型则指存储或R内部数据类型。

我认为,如果您对整数特别感兴趣,那么上面的问题就是以下内容的重复: 检查数字是否为整数

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

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

  1. 通过使用以下脚本CustomDerivedL2AMID <-(subset(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下设置了数据的数据不再有数值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM