本文介绍了根据其他列中的条件更新一列中的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我的数据框 (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'
})

这篇关于根据其他列中的条件更新一列中的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-05 08:41