R等效于SQL UPDATE查询

时间:2014-07-28 18:00:42

标签: sql r

我想使用R在SQL中执行相当于UPDATE的查询。如果我有这样的数据:

# Example Data
df <- data.frame(x <- c("My Name", "My Name"), y <- c("AZ", "MI"))
colnames(df) <- c("Name", "State")

print(df)

> print(df)
     Name State
1 My Name    AZ
2 My Name    MI

我想在SQL中使用R等效的这个:

update df
set Name = 'My Name1' 
where Name = 'My Name' 
and State = 'MI

所以最终输出是:

> print(df)
      Name State
1  My Name    AZ
2 My Name1    MI

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

由于您在数据框中使用了因素,因此您需要先使用

更改因子级别
levels(df$Name) <- c(levels(df$Name), "My Name1")

在使用

实际更改数据框之前
df[df$Name == "My Name" & df$State == "MI", "Name"] <- "My Name1"

答案 1 :(得分:0)

语法为:

df[logical condition OR rownumbers, column name or number] <- assignment

所以你可以这样做:

df[df$Name == "MyName" & df$State == "MI", "State"] <- "My Name1"