我有两个因子列,其中有许多丢失的数据。特定变量的名称在数据收集期间发生了更改。我想做的是将两列合并在一起,但更改特定旧变量的名称以匹配新变量。
我用过
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
想法?
最佳答案
这是使用 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])}
关于r - 合并两列,但更改特定变量的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29924064/