我有一个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列?
提前致谢!!
答案 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只有两列。