将2列合并为1;删除NA; R

时间:2015-05-19 22:07:51

标签: r

我有一个8列数据框。我想将数据框的2列合并为一列(第6列和第8列)。这两列都包含相同的数据。我基本上想要删除“NAs”,这样就有3排“西南”和最后一排“东南”

  

第6栏第8栏
  NA -----------西南部   NA -----------西南部   NA -----------西南部   东南 - NA

我将数据框子集化为仅拉出第6列和第8列(我想要合并的列)。 region_merge = df[,c(6,8)]

我创建了自己的函数,如下所示:

comb_region <- function(df){ if (df[,6]=="NA") df[,6] = df[,8] else df[,6] = df[,6] }

然后我使用apply函数在我的所有行中重复该函数:

apply(X = region_merge, MARGIN = 1, FUN = comb_region)

但是,我收到错误:Error in df[, 6] : incorrect number of dimensions

我是R.的新手。有人能帮我理解为什么会收到这个错误吗?

或者 - 您是否知道替代解决方案通过删除“NAs”来合并1列中的2列?

提前致谢!!

1 个答案:

答案 0 :(得分:1)

尝试:

comb_region <- function(df)
 {
 df[,6]=ifelse(is.na(df[,6]), df[,8], df[,6]);
 df[,8]=ifelse(is.na(df[,8]), df[,6], df[,8]);
 return(df)
 }
filled_df=comb_region(df_with_nas)

与NA的直接比较通常不起作用:改为使用is.na。

请注意,传递给comb_region的region_merge data.frame只有两列。