我正在尝试使用gsub()来观察数据框中的单个变量(df1)。我想在var1中删除“ - ”之前的所有内容,同时保留var2和var3,这样我最终会得到像df3这样的东西。任何帮助将非常感激。
起点(df):
SELECT [r].[IdResult], (
SELECT CASE
WHEN EXISTS (
SELECT 1
FROM [audit_DataEncounters] AS [e]
WHERE ((([r].[IdAudit] = [e].[IdAudit]) AND (([r].[PatientFirstName] = [e].[FirstName]) OR ([r].[PatientFirstName] IS NULL AND [e].[FirstName] IS NULL))) AND (([r].[PatientLastName] = [e].[LastName]) OR ([r].[PatientLastName] IS NULL AND [e].[LastName] IS NULL))) AND ([r].[PatientDOB] = [e].[DateOfBirth]))
THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT)
END
) AS [map_HasPatient], (
SELECT TOP(1) [e0].[IdEncounter]
FROM [audit_DataEncounters] AS [e0]
WHERE ((((([r].[IdAudit] = [e0].[IdAudit]) AND (([r].[PatientFirstName] = [e0].[FirstName]) OR ([r].[PatientFirstName] IS NULL AND [e0].[FirstName] IS NULL))) AND (([r].[PatientLastName] = [e0].[LastName]) OR ([r].[PatientLastName] IS NULL AND [e0].[LastName] IS NULL))) AND ([r].[PatientDOB] = [e0].[DateOfBirth])) AND ([e0].[StartDate] <= [r].[TransactionDate])) AND ([r].[TransactionDate] <= COALESCE([e0].[EndDate], @__maxDate_1))
ORDER BY [e0].[Inpatient], [e0].[StartDate] DESC
) AS [map_IdEncounter]
FROM [audit_Results] AS [r]
WHERE (([r].[IdAudit] = @__idAudit_0) AND ([r].[PatientFirstName] = N'ERIC')) AND ([r].[PatientLastName] = N'BROOKS')
期望结果(df):
df1 <- data.frame(var1=c("QJR - W5_COV","BJR - UMMY_SITE","KSJA_DSD - R0101","KSJA_DSD - LS300"),var2=c(1,1,1,1),var3=c("KSJA_DSD - hi","bye","KSJA_DSD - WS700","bit"))
当前代码:Var1看起来不错,但我丢失了其他变量。
df3 <- data.frame(var1=c("W5_COV","UMMY_SITE","R0101","LS300"),var2=c(1,1,1,1),var3=c("KSJA_DSD - hi","bye","KSJA_DSD - WS700","bit"))