合并两个单独的数据集后,我在数据集中有两列。我想将这些列合并为一列,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/