我有两个因子列,其中包含大量缺失数据。在数据收集期间更改了特定变量的名称。我想要做的是将两列合并在一起,但更改特定旧变量的名称以匹配新列。
我用过
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
。我有许多变量需要改变,但是如果我可以让它与其中一个变量一起使用,我认为我能够对其余变量进行故障排除。
更新:感谢@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
想法?
答案 0 :(得分: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])}