2017-06-17 12 views
0

私は、各行を手動で移動し、RecordLinkageパッケージを使用して一致した列が本当に一致するかどうかを判断する必要があるデータフレームを持っています。レコードの一部は、単に擬似的な関連が原因ではない場合、一致する確率が高くなります。データをCSVにエクスポートしたり、ケースバイケースでスクロールすることなく、これらを迅速に特定したいと思います。代わりに、データの各行を繰り返し処理し、各行のプロンプトでユーザー(私)に「これは一致(y/n)ですか?」という質問が表示されます。 'no')はその行の列に入力されます。ユーザーの入力を促す列を更新するR

このコードは

id= c(1, 2, 3, 4) 
loc1 = c("21ST AVE", "5TH ST", "HICKMAN ST", "GULF DR") 
loc2 = c("21ST AVE BEACH ST", "5 EAST HARPER BLVD", "28 HARLEY ST", "1000 GULF DR") 
day1 = c(12, 13, 14, 15) 
day2 = c(12, 13, 14, 15) 
time1 = c("20:52", "12:52", "15:35", "14:45") 
time2 = c("20:52", "18:29", "03:55", "15:01") 
df = data.frame(id, loc1, loc2, day1, day2, time1, time2) 

はこの結果を提供することで、データの簡単な例を再現します、私が好きな何

id loc1  loc2    day1 day2 time1 time2 
1 21ST AVE 21ST AVE BEACH ST 12  12  20:52 20:52 
2 5TH ST  5 EAST HERST BLVD 13  13  12:52 18:29 
3 HICKMAN ST 28 HARLEY ST  14  14  15:35 03:51 
4 GULF DR  1000 GULF DR  15  15  14:45 15:01 

Is this a match (y/n)? 
---------------------- 
id loc1  loc2    day1 day2 time1 time2 
1 21ST AVE 21ST AVE BEACH ST 12  12  20:52 20:52 

を依頼するためのプロンプトです各行でyesまたはnoと答えると、次の結果が得られます。

id loc1  loc2    day1 day2 time1 time2 match 
1 21ST AVE 21ST AVE BEACH ST 12  12  20:52 20:52 y 
2 5TH ST  5 EAST HERST BLVD 13  13  12:52 18:29 n 
3 HICKMAN ST 28 HARLEY ST  14  14  15:35 03:55 n 
4 GULF DR  1000 GULF DR  15  15  14:45 15:01 y 

これがa)、b)、実現可能かどうか、またはc)それについての最善の方法であるかどうかはわかりません。思考/示唆に開放されています。ありがとう。

+0

はhttps://stackoverflow.com/questions/11007178/creating([こちら]をご覧-a-prompt-answer-system-to-input-data-to-r) – RobertMc

答えて

1

まず

checkRow<-function(df){ 
    match<-vector() 
    for(i in 1:nrow(df)){ 
    print(df[i,]) 
    ans<-readline("Is this a match? (y or n)") 
    match<-c(match, ans) 
    } 
    return(cbind(df, match)) 
} 

は次にようにそれを呼び出す...機能します

checked<-checkRow(df) 
+0

これは素晴らしいです、ありがとう!私は 'return(df = cbind(df、match))'に変更して、毎回列の値が保存されるようにしました。よく働く。 – rastrast

関連する問題