部分删除变量上的字符串,同时保留数据帧R中的其他变量

时间:2017-10-17 18:46:16

标签: r

我正在尝试使用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"))

0 个答案:

没有答案