我想使用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
有什么想法吗?
答案 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"