1
데이터 세트는 회사 식별자 (문자열), 데이터 값의 세 열 및 날짜 (yyyymmdd)로 구성됩니다. 약 25,500 개의 고유 한 회사 식별자가 있으며 각각은 1973 년 1 월 1 일부터 현재까지 총 일곱 번째 행에 대한 현재 값을가집니다. 데이터 세트의 각 날짜에 대한 통계 (예 : 범위, 평균, 중간 값, 표준 편차 등)를 계산하고 싶습니다. 데이터는 원래 csv 였고 데이터 프레임으로 R에 가져 왔습니다. 내 첫 번째 시도는 다음과 같습니다 그러나보다 효율적인 R에서이 작업을 수행하는 옵션의 과다가있다 25,000 행데이터 세트의 각 달 평균 데이터 찾기
stat <- data.frame(Date=as.Date(character()), Mean=numeric(), SD=numeric(), Quant_75=numeric(), Quant_25=numeric(), Range=numeric(), stringsAsFactors=FALSE)
uniq <- unique(unlist(data$Date))
for (i in 1:length(uniq)){
data_sub <- subset(data, date == uniq[i])
stat[i,] = rbind(date, mean(data_sub), sd(data_sub), quantile(data_sub, 0.75), quantile(data_sub,0.25), range(data_sub))
}
위대한 링크 및 응답 작품으로 데이터를 처리하는 사람에게 도움이 될 수 있습니다. – user6893
사실 다음과 같은 오류가 발생합니다. ': ='(AVG_BY_DAY, 평균 (technical $ PRC, na.rm = T)) 오류 : is.data.table (DT) == TRUE를 확인하십시오. 그렇지 않으면 : =와': ='(...)은 j에서 한 번만 사용되며 특별한 방법으로 사용되도록 정의됩니다. 도움말 (": =")을 참조하십시오. – user6893
당신은 data.table 이름을 지정할 필요가 없습니다. 그래서 ": = = (AVG, 평균 (PRC, na.rm = T))"로 충분할 것입니다. 또한 PRC가 숫자이고 인자가 아닌지 확인하십시오.': ='(AVG = mean) 표기법을 사용하면': ='주위의 역 따옴표를 잊지 마십시오 (주석에서 보이지 않음) (AVG : = mean (...), SD : = sd (...)') 대신에 (PRC, na.rm = T), SD = sd (PRC, na.rm = T) –