2

多数の欠落データがある 2 つの因子列があります。データ収集中に特定の変数の名前が変更されました。私がやろうとしているのは、2 つの列を一緒にマージすることですが、特定の古い変数の名前を新しい変数と一致するように変更します。

使った

help <- data.frame(var1 = c("red", "", "blue", "", "red", "orange", "", "", "red"),
                   var2 = c("", "lightred", "blue", "lightred", "", "", "", "", ""))

作成するには

> help
    var1     var2
1    red         
2        lightred
3   blue     blue
4        lightred
5    red         
6 orange         
7                
8                
9    red         

そして望んでいる

> help
    var1     var2   newvar
1    red          lightred
2        lightred lightred
3   blue     blue     blue
4        lightred lightred
5    red          lightred
6 orange            orange
7                         
8                         
9    red          lightred

したがって、この例では、変数を にマージし、変数newvarの名前を に変更しredますlightred。変更する変数がいくつかありますが、1 つの変数で動作させることができれば、残りの変数をトラブルシューティングできると思います。

更新:@Veerendra Gadekarのおかげで、ここで解決策に近づきます....

以下のコードを使用しました

help$newvar= gsub('red', 'lightred', help$var1)

しかし、変数lightredは転送されませんでしたnewvar...出力は以下のとおりです

    var1     var2   newvar
1    red          lightred
2        lightred         
3   blue     blue     blue
4        lightred         
5    red          lightred
6 orange            orange
7                         
8                         
9    red          lightred

考え?

4

1 に答える 1

2

gsub() を使用してこれを行う方法を次に示します。

 help$newvar= gsub('red', 'lightred', help$var1)

置き換える要素が複数ある場合は、次のようなことができます

# for instance

to.replace = c('red', 'blue')

replace.with = c('lightred', 'lightblue')

for(i in 1:length(to.replace)){
   help$newvar[i] = gsub(to.replace[i], replace.with[i], help$var1[i])}
于 2015-04-28T16:34:10.237 に答える