首页 > 解决方案 > R - 创建检查多个数据帧中的 NA 的数据帧

问题描述

我有两个数据框,例如

df1 <- data.frame(Company = c('A','B','C','D','E','F'),
                  `X1980` = c(21,NA,53,57,11,26),
                  `X1981` = c(35,33,45,NA,NA,12))
df2 <- data.frame (Company = c('A','B','C','D','E','F'),
                   `X1980` = c(78,2,NA,24,25,26),
                   `X1981` = c(435,33,45,5,10,12))

我想创建一个新的数据框(df3),保持公司列不变。如果一个或两个值都是 NA,则 1980 年和 1981 年的值应为 0,如果两个值都不是 NA,则应为 1。产生以下数据框:

result df3
        Company  1980  1981
           A       1     1
           B       0     1
           C       0     1
           D       1     0
           E       1     0
           F       1     1

我是新来的,所以如果有什么办法可以改善我的问题,那就让我知道:) 已经感谢您的帮助!

标签: rtime-seriescomparena

解决方案


这是一个单线。

cbind(df1[1], (!is.na(df1[-1]) & !is.na(df2[-1])) + 0L)
#  Company X1980 X1981
#1       A     1     1
#2       B     0     1
#3       C     0     1
#4       D     1     0
#5       E     1     0
#6       F     1     1

数据,更正

df1 <- data.frame(Company = c('A','B','C','D','E','F'),
                  `1980` = c(21,NA,53,57,11,26),
                  `1981` = c(35,33,45,NA,NA,12))
df2 <- data.frame (Company = c('A','B','C','D','E','F'),
                   `1980` = c(78,2,NA,24,25,26),
                   `1981` = c(435,33,45,5,10,12))

推荐阅读