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的名称更改redlightred. 我有许多变量要更改,但如果我能让它与一个变量一起工作,我想我将能够解决其余的问题。

更新:感谢@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 回答