UFO ET IT

필드와 관련된 조건을 기반으로 데이터 프레임의 하위 집합 추출

ufoet 2020. 12. 25. 00:15
반응형

필드와 관련된 조건을 기반으로 데이터 프레임의 하위 집합 추출


다른 위치의 의료 조사 결과가 포함 된 큰 CSV가 있습니다 (위치는 데이터에있는 요소입니다). 일부 분석은 특정 위치와 편의를 위해 특정 위치에서만 행이있는 서브 프레임을 추출하고 싶습니다. 위치가 첫 번째 필드이므로 예, CSV 행을 정렬하여 할 수 있지만 다른 열에 필요할 것이라고 확신하므로 R에서 수행하는 방법을 배우고 싶습니다.

따라서 간단히 말해서 질문은 다음과 같습니다. 데이터 프레임 foo가 주어지면 foo의 행만 포함하는 다른 데이터 프레임 막대를 어떻게 만들 수 foo$location = 'there'있습니까?


다음은 두 가지 주요 접근 방식입니다. 나는 가독성을 위해 이것을 선호합니다.

bar <- subset(foo, location == "there")

당신이 문자열 함께 많은 조건문과 함께 할 수있는 주 &|복잡한 하위 집합을 만들 수 있습니다.

두 번째는 인덱싱 접근 방식입니다. 숫자 또는 부울 슬라이스를 사용하여 R의 행을 인덱싱 할 수 있습니다. 의 행과 길이가 같은 foo$location == "there"의 벡터를 반환합니다 . 이렇게하면 조건이 true를 반환하는 행만 반환 할 수 있습니다.TFfoo

foo[foo$location == "there", ]

위의 답변을 확장하기 위해 수행중인 작업에 따라 유용 할 수있는 열 이름을 지정하는 대신 열을 인덱싱 할 수도 있습니다. 귀하의 위치가 첫 번째 필드라는 점을 감안하면 다음과 같습니다.

    bar <- foo[foo[ ,1] == "there", ]

이는 특정 열에 대한 루프와 같은 열 값에 대한 작업을 수행 할 수 있기 때문에 유용합니다 (행 번호를 인덱싱하여 동일한 작업을 수행 할 수도 있음).

이는 열 범위를 지정할 수 있으므로 둘 이상의 열에 대해 일부 작업을 수행해야하는 경우에도 유용합니다.

    foo[foo[ ,c(1:N)], ]

또는 예상대로 특정 열.

    foo[foo[ ,c(1,5,9)], ]

참조 URL : https://stackoverflow.com/questions/3445590/extract-a-subset-of-a-dataframe-based-on-a-condition-involving-a-field

반응형