返回的列在R的字段末尾带有负正弦值
我正试图在R Studio中的SQL Server中运行此代码返回的列在R的字段末尾带有负正弦值,r,sql-server,dplyr,data-manipulation,R,Sql Server,Dplyr,Data Manipulation,我正试图在R Studio中的SQL Server中运行此代码 CASE WHEN COLUMN1 LIKE '%-%' THEN CAST((REPLACE(COLUMN1, '-', '') AS NUMERIC) * -1 ELSE COLUMN1 END VALUE 我使用的是数据表,因为我的文件有2 GB,我尝试使用以下方法: MYDATATABLE[, newfield:=ifelse((COLUMN1 %like% '-'), ***repl
CASE
WHEN COLUMN1 LIKE '%-%'
THEN CAST((REPLACE(COLUMN1, '-', '') AS NUMERIC) * -1
ELSE COLUMN1
END VALUE
我使用的是数据表,因为我的文件有2 GB,我尝试使用以下方法:
MYDATATABLE[, newfield:=ifelse((COLUMN1 %like% '-'), ***replace '-' for nothing and mutiply this for "-1"***, COLUMN1)]
返回的列begin在值的末尾带有负号-如下所示:
COLUMN1
--------
55.400-
60.440-
61.280-
136.400-
506.333-
如果我正确理解了您的问题,那么您可以尝试两步流程 如果
col1
具有-
,您可以在从col1
中删除-
后,通过指定col1
数值的负数,而不是执行缓慢的ifelse
,首先创建一个新列new\u col
。然后将new\u col
中的NA
值替换为col1
的数值
库(data.table)
DT[grepl(“-”,col1),
新列:=-as.numeric(gsub(“-”,“”,col1))][is.na(新列),新列:=as.numeric(col1)]
给
> DT
col1 id new_col
1: -123 1 -123
2: 1233- 2 -1233
3: 45 3 45
样本数据:
DT <- data.table(col1 = c("-123","1233-", "45"),
id = c(1,2,3))
# col1 id
#1: -123 1
#2: 1233- 2
#3: 45 3
DT(1)请使用SO编辑工具正确格式化代码。(2) MYDATATABLE[…]
似乎不是有效的R代码。中缀操作符%如$
来自哪里?请您的问题包括一些样本数据和您的预期输出;我不清楚你想做什么。什么是“消极的罪恶”?你是说信号吗?签名?对不起,我没能很好地解释我真正想做什么,Prem的答案很有效。谢谢你的帮助。谢谢你!伟大的解决方案!