2017-10-30 5 views
0

私は大きなデータフレームdataを有するデータサブセットから新しいデータフレームを作成するには、次のコードを使用して、各車両IDのデータをサブセットするループを実行することができました。機能は車両の数とその地理空間location.Iと

uniq <- unique(unlist(data$vehicleid)) 
for (i in 1:length(uniq)){ 
    data_1 <- subset(data, vehicleid == uniq[i]) 
    #your desired function 
} 

私は各部分集合の最初の行を抽出し、新たな別のデータフレーム内の全ての抽出された行を取得できるように機能を記述する必要があります。それ、どうやったら出来るの?

答えて

1

しばしばを介して1つまたは複数の因子およびランサブセットデータフレームによりデータフレームのサブセットができるbyを見落とし検討し関数:

# LIST OF FIRST ROW DATA FRAMES FOR EACH VECHICLE ID 
dfs <- by(data, data$vehicleid, FUN=function(d), d[1,]) 

# ROW BIND ALL DF ELEMENTS 
finaldf <- do.call(rbind, dfs) 
0

ここオルタナティブ4つのIDS

example <- expand.grid(id=letters[1:4], value=5:10) 
ids <- unique(example$id) 
plyr::ldply(ids, function(x) example[example$id==x,][1,]) 

# id value 
# 1 a  5 
# 2 b  5 
# 3 c  5 
# 4 d  5 

の最初の行を抽出する例は次のとおり

example_list <- split(example, example$id) 
do.call(rbind, lapply(example_list, '[', 1,)) 
+1

'example [!duplicated(example $ id)、]' - esse https://stackoverflow.com/questions/42846801/deleting-first-row-based-on-column-variable/42846892の反対側 – thelatemail

関連する問題