将分类变量集转换为单个向量的函数

问题描述 投票:2回答:1

[关于创建伪变量的文章很多,但就我而言,我有一组类似于伪变量的列,需要重新编码为一列。

作为一组类别/字符串变量(美国的县):

a<-c(NA,NA,"Cameron","Luzerne");b<-c(NA,"Luzerne",NA,NA);c<-c("Chester",NA,NA,NA)
df<-as.data.frame(cbind(a,b,c))

如何创建可以将它们转换为单个类别的函数?该函数应适用于任何连续的字符串列集。

结果应如下所示:

newcol    a           b          c
Chester   <NA>        <NA>       Chester
Luzerne   <NA>        Luzerne    <NA>
Cameron   Cameron    <NA>        <NA>
Luzerne   <NA>        Luzerne    <NA>

我编写了此函数,它带有三个参数:

cn<-function(df,s,f){
  for(i in seq_along(df[ ,c(s:f)]) )  # for specified columns in a dataframe...
  ifelse(is.na(df[,i]),NA,df[ ,i] )   # return value if not NA
  }

但是它不起作用。我已经尝试了各种类似的尝试。失败。

想法是获取一个带有一些字符串列的数据框,并将其值(如果不是空白的话)移动到新列。

[有关创建虚拟变量的文章很多,但在我的情况下,我有一组类似于虚拟变量的列,需要重新编码为一列。按类别/字符串的集合给出...

r function recode
1个回答
2
投票

我们可以使用coalesce

© www.soinside.com 2019 - 2024. All rights reserved.