重命名标题

问题描述:

我有一栏:重命名标题

 id father mother sex birthdate.x birthdate.y 
1 john  0  0 1  <NA>   NA 
2 mari  0  0 2  01/01/1996 NA 
3 paul  0  0 2  <NA>  01/01/1995 
4 ralf  0  0 2  <NA>   NA 
5 kimb  0  0 2  01/01/1997 NA 

每次我用它来“合并” birthdate.xbirthdate.y,它给了我一个简单的数字时间和金钱。

df1$birthdate.x <- ifelse(is.na(df1$birthdate.y), df1$birthdate.x, df1$birthdate.y) 
df1$birthdate.y <- NULL 
names(df1)[names(df1)=="birthdate.x"] <- "birthdate" 

     id  father mother sex birthdate 
1 john  0  0  1 NA 
2 mari  0  0  2 2 
3 paul  0  0  2 1 
4 ralf  0  0  2 NA 
5 kimb  0  0  2 3 
+2

'ifelse'失去属性做到这一点;在这种情况下是因子标签。转换为字符,它会起作用。 (具有讽刺意味的是,如果你转换成Date类,你将会遇到同样的问题。) – alistaire

+0

我如何转换成角色? –

+0

'df1 $ birthdate.x alistaire

我们可以pmax

transform(df1, birthdate = pmax(as.character(birthdate.x), 
      as.character(birthdate.y), na.rm = TRUE))[-(5:6)] 
# id father mother sex birthdate 
#1 john  0  0 1  <NA> 
#2 mari  0  0 2 01/01/1996 
#3 paul  0  0 2 01/01/1995 
#4 ralf  0  0 2  <NA> 
#5 kimb  0  0 2 01/01/1997