1
R에서 데이터 프레임을 부분 집합으로 만들려고합니다. 구문이 잘못되어 잘못된 결과가 생성되는 것입니다.여러 조건을 사용하여 데이터 프레임 필터링
data[i,]$m_cnt <- nrow(w_data[
w_data$direction >= data[i,]$min_a &
w_data$direction < data[i,]$max_a &
w_data$windspeed >= 3 &
w_data$windspeed < 15,
])/records;
비슷한 질문 : Filtering a data.frame
w_data의 data.frame (간략화를 위해 단순화)의 풍속과 풍향 시계열 데이터로 구성된다.
time_stamp windspeed direction
2010-06-01 00:00 12.2 125
2010-06-03 02:50 17.4 312
2010-06-05 21:30 2.1 132
2010-06-12 15:10 7.8 71
2010-06-22 17:40 2.6 307
2010-06-30 03:20 5.1 310
상기 R 문
이 예>=3m/s
및
<15m/s
에서 인스턴스
>=120°
및
<135°
과 소정 풍속 범위라고 특정 풍향 범위 레코드 수를 카운트하는데있다. 카운트는 측정 된 총 측정 횟수의 백분율로 변환되므로 위의 예는 6 = 16.66 %에서 1 레코드와 같아야합니다. 백분율은 다음 구조를 가지는 다른 data.frame (데이터)로 기록된다 :
min_a max_a l_cnt m_cnt h_cnt
0 15 0 0 0
15 30 0 0 0
30 45 0 0 0
45 60 0 0 0
60 75 0 0.1666 0
75 90 0 0 0
90 105 0 0 0
105 120 0 0 0
120 135 0.1666 0.1666 0
135 150 0 0 0
150 165 0 0 0
165 180 0 0 0
180 195 0 0 0
195 210 0 0 0
210 225 0 0 0
225 240 0 0 0
240 255 0 0 0
255 270 0 0 0
270 285 0 0 0
285 300 0 0 0
300 315 0.1666 0.1666 0.1666
315 330 0 0 0
330 345 0 0 0
345 360 0 0 0
I가 발생하고 문제가 모든 비율의 합 (이 예는 않지만, 같지 100 % 없다는 것이다 I 기록을 10,000 개가 넘는 스크립트를 실행하십시오.)
또한 같은 이상한 결과, 경험:
data[i,]$l_cnt <- nrow(w_data[
w_data$direction >= data[i,]$min_a &
w_data$direction < data[i,]$max_a &
w_data$windspeed <= 3,
])/records;
data[i,]$m_cnt <- nrow(w_data[
w_data$direction >= data[i,]$min_a &
w_data$direction < data[i,]$max_a &
w_data$windspeed <= 15,
])/records;
data[i,]$h_cnt <- nrow(w_data[
w_data$direction >= data[i,]$min_a &
w_data$direction < data[i,]$max_a &
w_data$windspeed > 15,
])/records;
이의 합계 생산 :
l_cnt 0,360637343
m_cnt 0,187836625
h_cnt 0,811938959
total 1,360412926
을하지만을 나는 더 큰 즉, 에 비해보다 작으로 m_cnt 계산을 자격이 있는지 :
data[i,]$m_cnt <- nrow(w_data[
w_data$direction >= data[i,]$min_a &
w_data$direction < data[i,]$max_a &
w_data$windspeed >= 3 &
w_data$windspeed < 15,
])/records;
다음과 같이 표시됩니다.
l_cnt 0
m_cnt 0,360637343
h_cnt 0,811938959
total 1,172576302
이상한 혼합. '[i, "h_cnt"]'의 어떤 점이 잘못 되었습니까? 잘못된 결과와 예상되는 결과는 무엇이며 데이터는 어떻게 생겼을까요? 재현 가능한 예? –
개빈 (Gavin)이 언급 한 부분 집합 외에도 구문은 유효한 R과 비슷합니다. 시작하기 전에 다른 데이터 집합 'w_data_3_15 <- subset (w_data, windspeed> 3 및 windspeed <15)'을 만드는 경우 코드가 더 빠르고 깨끗해집니다. 루핑. –
@Gavin 더 많은 정보를 추가했습니다 – klonq