R에서 쓰이는 데이터프레임은 행과 열을 갖고 있다.
[2, 1] 은 2행 1열,
[1, 3] 은 1행 3열을 의미한다.
같은 원리로, 쉼표의 위치에 따라
[2,] 은 '2행'을 의미하고
[,3] 은 '3열'을 의미한다
행과 열이 많이 필요할 것 같으니, R에 기본 저장 되어 있는 'iris' 데이터를 보자
150행짜리라, 첫 몇 행만 보려고 head()에 넣었다.
여기서 1행만 뽑고 싶다면 이렇게
1에서 10행까지만 뽑고 싶다면 이렇게
1에서 3열까지만 뽑고 싶다면 이렇게
하면 된다.
3열까지 뽑을 경우 행은 150 행일 것이므로 head()로 조금만 보았다:)
이제 x에서 1행을 삭제해 보자. 삭제는 (-) 기호를 쓰면 된다.
마찬가지로 2, 4, 6 행을 삭제하려면
삭제시에는 행이름이 아니라 행의 순서로 판단하므로
rownames(x) <- NULL로 행이름을 초기화시키지 않으면,
이전 상태에서 '2번째' 행이었던 '행이름 3' 행과 4번째였던 '행이름 5', 그리고 6번째였던 '행이름 7' 행이 삭제되어 헛갈릴 수 있다
마찬가지로 열을 삭제하려면
이와 같이 하면 된다.
다만 특이한 것이, 열 이름을 이용한 삭제는 이런 방법으로는 불가능하다.
위와 같이 열 이름을 사용한 추출은 가능하지만,
삭제를 위해 '-'를 붙이면 위와 같이 에러가 난다.
열 이름을 사용해 삭제하려면 다음에 다룰 subset() 함수를 사용해야 한다.
(2016/09/05 - [R] - [R.아르] 특정 조건을 만족하는 행만 추출하기 를 보자)
행이나 열이 아니라 벡터에서 어떤 원소를 삭제할 때도 동일한 방법을 사용한다.
예를들어 다음과 같은 x에서
세 번째 원소를 삭제하고 싶다면
위와 같이 하면 된다.
행이나 열이 아니므로 콤마(,)를 사용하지 않는다.
세 번째에서 일곱 번째 원소를 삭제하고 싶다면
위와 같이 한다.
실제로는 눈으로 보면서 몇 번째 원소를 삭제할 것인지 결정하기는 힘들기 때문에
which=() 같은 함수와 조합하여 사용하는 경우가 많다.
예를들어 다음과 같은 x에서 짝수를 지우려면
위와 같이 사용한다.
%%는 나누었을 때의 나머지라는 의미이며
which=() 에 대하여는 2016/09/05 - [R] - [R.아르] 특정 조건을 만족하는 행의 개수 구하기 를 참고하면 되겠다.
'R' 카테고리의 다른 글
[R. 아르] 리스트에 없는 항목만 추출하기 (차집합, setdiff()) (0) | 2016.09.23 |
---|---|
[R. 아르] 내용 합치기 paste() (0) | 2016.09.22 |
[R.아르] 중복된 행 삭제하기 unique() / duplicated() (0) | 2016.09.12 |
[R.아르] 중복된 값의 개수 세기(엑셀의 countif) (1) | 2016.09.09 |
[R.아르] R에서 엑셀의 vlookup() 기능 사용하기 (0) | 2016.09.08 |
[R.아르] 특정 조건에 맞는 글자(이메일 주소)만 추출하기 (1) | 2016.09.06 |
[R.아르] 특정 조건을 만족하는 행의 개수 구하기 (2) | 2016.09.05 |
[R.아르] 특정 조건을 만족하는 행만 추출하기 (22) | 2016.09.05 |
[R.아르] 글자 수 세기 nchar() (0) | 2016.09.02 |
[R.아르] R 행,열 추가 (1) | 2016.08.30 |
댓글