根据r中的以下行给出结果(1或2)

时间:2017-10-18 17:09:21

标签: r

我的表中有两行表。第一行将始终为“NA”,第二行将始终为1或2.我想检查第二行是1还是2,并将“NA”行更改为相反。示例如下:

表1:

ID   Team
100   NA
101   2

期望的结果1:

ID   Team
100    1
101    2

表2:

ID   Team
100   NA
101   1

期望的结果2:

ID   Team
100    2
101    1

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

如果你总是只有两行:

df1 <- data.frame(ID=c(100,101),Team=c(NA,2))

df1$Team[1] <- ifelse(df1$Team[2]==1,2,1)

   ID Team
1 100    1
2 101    2

答案 1 :(得分:0)

这是一个用来估算缺失值的函数。

library(dplyr)

fill_fun <- function(dt){
  dt <- dt %>%
    mutate(Team = ifelse(is.na(Team) &  nth(Team, 2) == 2, 1,
                         ifelse(is.na(Team) & nth(Team, 2) == 1, 2, Team)))
  return(dt)
}

fill_fun(dt1)
   ID Team
1 100    1
2 101    2

fill_fun(dt2)
   ID Team
1 100    2
2 101    1

数据

dt1 <- read.table(text = "ID   Team
100   NA
                 101   2",
                 header = TRUE)

dt2 <- read.table(text = "ID   Team
100   NA
                  101   1",
                  header = TRUE)