【发布时间】:2017-05-11 07:51:40
【问题描述】:
我有一个专栏:
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.x 和 birthdate.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
【问题讨论】:
-
ifelse失去属性;在这种情况下,因子标签。将两者都转换为字符,它将起作用。 (具有讽刺意味的是,如果你转换为 Date 类,你也会遇到同样的问题。) -
我怎样才能转换成字符?
-
df1$birthdate.x <- as.character(df1$birthdate.x)并重复birthdate.y,或直接在ifelse中执行,即df1$birthdate <- ifelse(is.na(df1$birthdate.y), as.character(df1$birthdate.x), as.character(df1$birthdate.y)) -
另外,请确保您的
NAs 实际上是NA而不是因子级别或字符串;查看str(df1)看看你有什么(以及为什么两列之间的打印不一致)。 -
谢谢老哥,成功了!我欠你一夜好眠哈哈哈哈哈哈