本文介绍了根据其他列中的条件更新一列中的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果我的数据框 (df) 如下所示:
If my data frame (df) looks like this:
Name State
John Smith MI
John Smith WI
Jeff Smith WI
我想将 WI 中的 John Smith 重命名为John Smith1".什么是 SQL 语句的最干净的 R 等价物?
I want to rename the John Smith from WI "John Smith1". What is the cleanest R equivalent of the SQL statement?
update df
set Name = "John Smith1"
where Name = "John Smith"
and State = "WI"
推荐答案
df <- data.frame(Name=c('John Smith', 'John Smith', 'Jeff Smith'),
State=c('MI','WI','WI'), stringsAsFactors=F)
df <- within(df, Name[Name == 'John Smith' & State == 'WI'] <- 'John Smith1')
> df
Name State
1 John Smith MI
2 John Smith1 WI
3 Jeff Smith WI
** 编辑 **
编辑添加您可以在表达式中放入任何您喜欢的内容:
Edited to add that you can put whatever you like in the within expression:
df <- within(df, {
f <- Name == 'John Smith' & State == 'WI'
Name[f] <- 'John Smith1'
State[f] <- 'CA'
})
这篇关于根据其他列中的条件更新一列中的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!