【问题标题】:Rbinding in specific order [duplicate]以特定顺序绑定 [重复]
【发布时间】:2021-03-31 03:57:02
【问题描述】:

我有一个大数据集(超过 1000 个变量),但这只是一个小的 sn-p。我正在尝试从原始数据集中获取我的原始个人 ID,并为每个人创建“假父母”。所以我的 FID 是我的假数据(以 3 结尾),而 MID 是我的假妈妈(以 4 结尾)。我现在正在尝试将其与原始个人 ID (IID) 进行 rbind,但是,希望按照我的数据的原始顺序执行此操作,并确保爸爸和妈妈也属于每个人。

这是我的数据的 sn-p:

FID

10343
10563
10643
10913
11013
113
etc.

中间

10344
10564
10644
10914
11014
114
etc.

独立身份证件

    10341
    10561
    10641
    10911
    11011
    11012
    111
    112
    etc.

我正在尝试将它们绑定以最终创建一个数据框,一旦将它们组合在一起,它们在数字方面的顺序是正确的:

10341
10343
10344
10561
10563
10564
10641
10643
10644
10911
10913
10914
11011
11012
11013
11014
111
112
113
114
etc.

任何帮助都会很棒!

谢谢。

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以将所有数据集组合在一起并按值排列。

    library(dplyr)
    data <- bind_rows(FID, MID, IID) %>% arrange(col)
    

    在基础 R 中:

    data <- rbind(FID, MID, IID)
    data <- data[order(data$col), ]
    

    假设列名在所有数据框中都称为col

    【讨论】:

    • 感谢您的回答!所以,我有第一个代码,但结果是:PED &lt;- bind_rows(FID, MID, IID) %&gt;% arrange(FIID) Error: Can't combine ..1$FIID` ..3$FIID .` ...不知道如何解决?跨度>
    • 这意味着所有这些数据框中的数据都有不同的类型。所有 3 个数据框是否具有相同的列名,即 FIID ?将所有列转换为字符,试试这个:data &lt;- bind_rows(FID %&gt;% mutate(FIID = as.character(FIID)), MID %&gt;% %&gt;% mutate(FIID = as.character(FIID)), IID %&gt;% %&gt;% mutate(FIID = as.character(FIID))) %&gt;% arrange(FIID)
    • 这成功了!非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多