R 데이터프레임 값 업데이트

1 개요[ | ]

R 데이터프레임 값 업데이트

2 문제상황[ | ]

df <- read.table( header=T, stringsAsFactors=FALSE, text="
day         fruit    ea
2019-06-01  apple    1
2019-06-11  apple    1
2019-06-21  banana   2
2019-07-01  사과     3
2019-07-11  바나나   4
")
# 윈도우 CP949 오류 보정 2019-07-21
if( Sys.getlocale("LC_COLLATE") == "Korean_Korea.949" ) df <- as.data.frame(apply(df,2,function(x)gsub('\\s+', '',x)))
df
##          day  fruit ea
## 1 2019-06-01  apple  1
## 2 2019-06-11  apple  1
## 3 2019-06-21 banana  2
## 4 2019-07-01   사과  3
## 5 2019-07-11 바나나  4

3 방법 1: R 연산자[ | ]

df$fruit[df$fruit=="apple"] <- "사과"
df$fruit[df$fruit=="banana"] <- "바나나"
df
##          day  fruit ea
## 1 2019-06-01   사과  1
## 2 2019-06-11   사과  1
## 3 2019-06-21 바나나  2
## 4 2019-07-01   사과  3
## 5 2019-07-11 바나나  4

4 방법 2: sqldf[ | ]

library("sqldf")
df <- sqldf(c("UPDATE df SET fruit='사과' WHERE fruit='apple'", "SELECT * FROM df"))
df <- sqldf(c("UPDATE df SET fruit='바나나' WHERE fruit='banana'", "SELECT * FROM df"))
df
##          day  fruit ea
## 1 2019-06-01   사과  1
## 2 2019-06-11   사과  1
## 3 2019-06-21 바나나  2
## 4 2019-07-01   사과  3
## 5 2019-07-11 바나나  4
library("sqldf")
df <- sqldf(c(
"UPDATE df SET fruit='사과' WHERE fruit='apple'",
"UPDATE df SET fruit='바나나' WHERE fruit='banana'",
"SELECT * FROM df"
))
df
##          day  fruit ea
## 1 2019-06-01   사과  1
## 2 2019-06-11   사과  1
## 3 2019-06-21 바나나  2
## 4 2019-07-01   사과  3
## 5 2019-07-11 바나나  4

5 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}