r - 将两列中的数据合并为R中的一列

标签 r join merge

合并两个单独的数据集后,我在数据集中有两列。我想将这些列合并为一列,BNR.x。

对于下面列出的案例,我希望的结果是:
1. 没有。 BNR.x有数据,没问题。
2. 没有。两列中的数据相同,没关系。
3. BNR.y的数据复制到BNR.x
4. 没有。与 2 相同。
5.列中的数据不同。最好我会在这一行中得到一个带有 1 个 FALSE 的额外列作为警告。
6. 没有数据。最好我也会在这里收到警告,通知我我没有该项目的任何数据。

+----+-------+-------+
| ID | BNR.x | BNR.y |
+----+-------+-------+
|  1 | 123   | NA    |
|  2 | 234   | 234   |
|  3 | NA    | 345   |
|  4 | 456   | 456   |
|  5 | 678   | 677   |
|  6 | NA    | NA    |
+----+-------+-------+

是否有方法或程序包可以为我执行此操作?

最佳答案

这是一个建议。 dat是数据框的名字:

idx <- is.na(dat$BNR.x) # create logical index for NAs in BNR.x

dat$BNR.x[idx] <- dat$BNR.y[idx] # replace NAs with values from BNR.y

# Add a logical column:
dat <- transform(dat, warn = is.na(BNR.x) | (BNR.x != BNR.y & !is.na(BNR.y)))

结果:

  ID BNR.x BNR.y  warn
1  1   123    NA FALSE
2  2   234   234 FALSE
3  3   345   345 FALSE
4  4   456   456 FALSE
5  5   678   677  TRUE
6  6    NA    NA  TRUE

关于r - 将两列中的数据合并为R中的一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14812162/

相关文章:

git - 如何重新创建被 git rebase 破坏的 merge

merge - 将多个po文件添加到一个文件default.po中

在 R 中的稀疏矩阵上运行 cor() (或任何变体)

rep() 每个都等于一个向量

mysql - 棘手的 JOIN 问题带来意想不到的结果

mysql - 从联接表中选择多行

c# - 如何轻松合并两个具有不同数据结构的匿名对象?

r - ggplot中的控制点边框厚度

r - 在多个方面的可变 x 位置手动为 geom_area 添加颜色

mysql - 使用 MySql 获取两个日期之间的事件