【问题标题】:Trying to join two datasets, but str() function shows slash marks----试图加入两个数据集,但 str() 函数显示斜线----
【发布时间】:2018-12-04 01:52:23
【问题描述】:

我一直在尝试合并两个文件,两者都使用公共变量 COUNTYCD(劳工部劳工统计局使用的县代码。我已将它们转换为 chr 变量,并尝试合并/加入它们,但无济于事。当我运行 R 的 str() 函数时,我得到以下信息:

```

文件 X: $ COUNTYCD : 字符 "46013" "46013" "46013" "46013" ...

文件 Y: $ COUNTYCD : 字符 " \"01001\" " " \"01003\" " " \"01005\" " " " \"01007\" " ...

```

我注意到文件 Y 有斜线标记,尽管两者都将 chr 表示为变量类型。知道这些斜线是什么意思吗?我尝试过加入、合并和其他功能,但它们根本不起作用。

【问题讨论】:

    标签: r string join merge


    【解决方案1】:

    问题在于文件 Y 的 COUNTYCD 中的附加引号(如 str 输出中的转义 \" 所示)和前导空格。

    您可以使用gsub 替换引号并在合并之前使用trimws 修剪额外的空格。

    这是一个基于您的(稍作改动的)样本数据的示例:

    merge(df1, transform(df2, COUNTYCD = trimws(gsub("\"", "", COUNTYCD))), by = "COUNTYCD")
    #  COUNTYCD val_from_df1 val_from_df2
    #1    46013   0.33615347    0.9586547
    #2    46013   0.46372327    0.9586547
    #3    46013   0.06058539    0.9586547
    #4    46013   0.19743361    0.9586547
    

    样本数据

    set.seed(2018)
    df1 <- data.frame(
        COUNTYCD = c("46013", "46013", "46013", "46013"),
        val_from_df1 = runif(4))
    df2 <- data.frame(
        COUNTYCD = c(" \"01001\" ", " \"01003\" ", " \"01005\" ", " \"01007\" ", " \"46013\" "),
        val_from_df2 = runif(5))
    

    【讨论】:

    • 不客气@SHILLATE;请考虑通过在答案旁边设置绿色复选标记来关闭问题。这样一来,您就可以保持整洁,并让其他人更容易找到相关的答案。
    猜你喜欢
    • 1970-01-01
    • 2018-11-04
    • 2012-08-24
    • 2017-07-16
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2018-12-19
    相关资源
    最近更新 更多