2016-08-25 2 views
0

R 사용 변수 빈도에 따라 데이터에 플래그를 지정하는 새 열을 만들고 싶습니다. 현재, 플래그 열을 추가하는 대신 이러한 점을 제거하는 코드가 있습니다. 다른 열에 의해 y 또는 n으로도 분열 된 7200 개 미만의 레코드가있는 데이터를 플래그 지정해야합니다. 등이 reocords을 제거R 플래그가있는 새 열 작성

내 현재 코드 :이 R이 레코드를 무시하지만 어디서부터 시작해야합니다하지 않도록 지시로 내가 일부를 사용하지 않습니다 있으리라 믿고있어

# Read in csv file 
data = read.csv(infile) 

# Create subset with only records marked 'y' 
data_y = subset(data,data$yn!= 'n') 

# Count the number of records per day, using table function 
valid = table(data_y$DATE) 

# Remove the records with less than 7200 records, and also marked 'y' from subset function 
df_cut = data_w[data_w$DATE_STAMP %in% names(valid)[valid>=7200],] 

# Save new cvs 
write.csv(df_cut,outpath) 

.

+3

에 추가 할 수 있습니다, 'subset'의 주요 특징은'parent_object $'로 열을 한정 할 필요가 없습니다; 예 :'서브셋 (데이터, yn! = 'n')'. – nrussell

+0

'data $ flag = ave (data [, 1], data $ DATE, data $ yn, FUN = function (x) length (x) <7200)'와 같은 것입니다. 이렇게하면 각 DATE/YN 조합에 대해 7200 개 미만의 행이있을 때 TRUE 인' "flag"라는 열이 추가됩니다. – Gregor

답변

0

회원님이 요청하지만, 정확히 무엇인지 ...

tmp <- data.frame(table(data$DATE)) 
tmp <- tmp[tmp$Freq < 7200,] 

data$flagColumn <- "n" 

for(i in 1:nrow(tmp)){ 
    data$flagColumn[data$DATE == tmp$Freq[i]] <- "y" 
} 

은 여러 조건을 추가해야 할 경우 보조 노트로 '&'

data$flagColumn[(data$DATE == tmp$Freq[i]]) & data$someOtherCol =="n"] <- "y" 
관련 문제