데이터 프레임을 부분 집합화할 때 선택된 정의되지 않은 열


80

데이터 프레임이 있습니다. 데이터 프레임에 str(data)대해 자세히 보여주기 위해 결과는 다음과 같습니다.

> str(data)
'data.frame':   153 obs. of  6 variables:
$ Ozone  : int  41 36 12 18 NA 28 23 19 8 NA ...
$ Solar.R: int  190 118 149 313 NA NA 299 99 19 194 ...
$ Wind   : num  7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...
$ Temp   : int  67 72 74 62 56 66 65 59 61 69 ...
$ Month  : int  5 5 5 5 5 5 5 5 5 5 ...
$ Day    : int  1 2 3 4 5 6 7 8 9 10 ...

그러나 예를 들어 Ozone14 이상의 금액을 부분 집합으로 지정 하려면 다음 코드를 사용하여 오류를 발생시킵니다.

>  data[data$Ozone > 14 ]

[.data.frame(data, data $ Ozone> 14) 오류 : 정의되지 않은 열이 선택됨


12
쉼표가 누락되었습니다. 이 오류는 하위 집합에 포함 할 열을 지정하지 않았 음을 나타냅니다.
Ricardo Saporta 2013 년

1
즉, 데이터 프레임 참조에는 행 및 열 식별자가 필요합니다. 열을 하나만 선택하거나 모든 열을 선택할 수 있지만 원하는 것을 표시해야합니다.
Scott C Wilson

6
나는 같은 과제를 수행하고 있으므로 이것이 숙제라는 것을 알고 있습니다. 약한 소스.
Brian MacKay

답변:


154

해당 조건이 참인 행을 원하므로 쉼표가 필요합니다.

data[data$Ozone > 14, ]

19
왜 ...이 구문은 나에게 아무 의미
Reinderien

3
@Reinderien 배열을 인덱싱하는 일반적인 방법입니다. 실제로 데이터 구조를 가르치는 데 정말 좋은 구식 R 문서를 확인하십시오.
Ari B. Friedman

2
나는 쉼표를 제외한 모든 것을 얻습니다.
Reinderien 2015 년

11
dat[ 1, 2 ]첫 번째 행, 두 번째 열에 항목을 제공합니다. dat[ 1, ]첫 번째 행의 모든 ​​항목을 제공합니다. dat[ 1:5, ]행 1-5의 모든 열을 제공합니다.
Ari B. Friedman

6
153 x 6, 2 차원입니다.
아리 B. 프리드먼
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.