2016-06-08 4 views
2

데이터를 청소하기 위해 꽤 반복적 인 데이터 집합을로드하는 함수가 있습니다.여러 할당에 대한 속기 R

load_data = function(f){ 
    data = read.csv(f) 
    data$x = (data$a - data$b)/1000 
    data$y = (data$c - data$d)/1000 
    data$z = (data$e - data$f)/1000 
    data 
} 

R에이 프로세스를 간략하게 만들 수있는 구문 설탕이 있습니까?

코드는 작동하지만 성능상의 문제는 없지만 동일한 작업을 수십 번 수행해야하는 경우 수정할 필요가 없습니다.

+0

'(데이터 [C (TRUE, FALSE)] - 데이터 [C (FALSE, TRUE)])/1e3' 어쩌면? 'data [c ("x", "y", "z")] <-'를 사용하여'data'에 삽입 할 수 있습니다. 실제로 얼마나 많은 열이 있는지 등은 명확하지 않지만 질문은 그대로 재현 할 수 없습니다. –

+0

'data.table' 사용하기 :'data [, \': = \'(x = (ab)/1000, y = (cd)/1000, z = (ef)/1000)]' – ytk

+0

당신은 그것을 더 짧게하고 싶습니까? '데이터'를 여러 번 입력하지 않으시겠습니까? 'attach' 또는'with'를 사용하십시오. – Heisenberg

답변

6

덜 상세/가독성 :

load_data <- function(f){ 
    within(read.csv(f), { 
     x <- (a - b)/1000 
     y <- (c - d)/1000 
     z <- (e - f)/1000 
    }) 
} 
+0

멋지다! 많은 기능, 너무 적은 시간! –