R

[R] 데이터프레임 값 변경/수정 방법 정리

jimmy_AI 2022. 10. 5. 00:02
반응형

R 프로그래밍 과정에서 데이터프레임의 특정 값들을 원하는대로 바꾸는 방법을

정리해보도록 하겠습니다.

 

예시로 df라는 변수에 아래의 데이터프레임이 저장되어 있다고 가정해보겠습니다.

> df
   A  B   C
1 10 가 aaa
2 20 나 aaa
3 30 다 bbb
4 40 라 bbb

 

 

특정 위치 값 1개 변경

가장 간단한 예시로, 행과 열의 위치를 지정하여 값을 수정하는 방법입니다.

R에서는 df[행 인덱스, 열 이름] = 값 형태로 할당해주시면 변경이 완료됩니다.

> df[1, "A"] = 999
> df
    A  B   C
1 999 가 aaa
2  20 나 aaa
3  30 다 bbb
4  40 라 bbb

 

 

특정 행 전체 수정

특정 행의 값 전체를 변경하고 싶다면 df[행 인덱스, ] = 행 값 벡터 형태로

행 전체의 값들을 순서대로 할당해주시면 됩니다.(단, 행 인덱스 뒤에 콤마는 필수입니다.)

> df[3, ] = c(999, "파", "zzz")
> df
    A  B   C
1  10 가 aaa
2  20 나 aaa
3 999 파 zzz
4  40 라 bbb

 

반응형

 

특정 열 전체 수정

df[열 이름] = 열 값 벡터 형태로 코드를 실행시키면

벡터 내 값들의 순서로 해당 열의 값들이 통째로 변경됩니다.

> df["B"] = c("마", "바", "사", "아")
> df
   A  B   C
1 10 마 aaa
2 20 바 aaa
3 30 사 bbb
4 40 아 bbb

 

 

여러 행/열들의 값 동시에 변경

df[행 인덱스 벡터, 열 이름 벡터] = 값 벡터 형태의 코드로 여러 행/열들의 값을

동시에 수정하는 것이 가능합니다.

여기서 행 -> 열 순서로 값들이 할당되는 점에 유의해주세요.

> df[c(1, 2), c("A", "C")] = c(111, 222, "yyy", "zzz")
> df
    A  B   C
1 111 가 yyy
2 222 나 zzz
3  30 다 bbb
4  40 라 bbb

 

 

특정 조건 만족 위치 값 변경

R 프로그래밍에서 행, 열의 위치가 아니라 값에 대한 조건을 기준으로 해당하는 위치들의

값을 바꾸고 싶다면, df[조건, 열 이름] = 값 형태로 코드를 작성해주시면 됩니다.

 

아래는 A열의 값이 15 초과인 행들의 C열 값들을 "kkk"로 수정하는 예시입니다.

> df[df$A > 15, "C"] = "kkk"
> df
   A  B   C
1 10 가 aaa
2 20 나 kkk
3 30 다 kkk
4 40 라 kkk