2016-07-14 22 views
0

私はRを初めて使い、1つのデータフレームの各繰り返しでforループ出力を得ようとしています。以下は、私がResultsデータフレームループの出力をRデータフレーム

for (i in 1:nrow(base_data)) { 
LCS1 <- expand.grid(STREET=base_data$STREET[1:nrow(base_data)],REF_STREET=base_data$STREET[i]) 
LCS$LCS_stringdist=stringdist(LCS$STREET,LCS$Name1,method="lcs") 
Results <- head(LCS[order(LCS$LCS_stringdist),],20) 
} 
+0

ご了承ください。結果データフレーム*でデータを取得することを意味しますか?エラーまたは望ましくない結果は何ですか?現在のデータと望ましい結果は何ですか? – Parfait

+0

'head(...、20)'は、LCSデータフレームの上位20行を返します。だから、ループを通して各繰り返しで 'Results'に20行を追加したいのですか? – Gregor

+0

はい、私は 'NAME ----以下のようなデータを持っている@Parfait最終結果 – Vinay

答えて

1

でデータを取得しようとしていたコードが、ある私は、最も簡単な方法は、リストの項目に割り当て、最後のデータフレームにバインドすることだと思います。

results_list = list() 

for (i in 1:nrow(base_data)) { 
    LCS1 <- expand.grid(STREET=base_data$STREET[1:nrow(base_data)],REF_STREET=base_data$STREET[i]) 
    LCS$LCS_stringdist=stringdist(LCS$STREET,LCS$Name1,method="lcs") 
    results_list[[i]] <- head(LCS[order(LCS$LCS_stringdist),],20) 
} 

Results = do.call(rbind, results_list) 

## faster options in other packages 
Results = dplyr::bind_rows(results_list) 
Results = data.table::rbindlist(results_list) 
+0

ありがとうございます、これは動作します – Vinay

関連する問題