我有一个数据框,我需要手动筛选每一行,并确定我使用RecordLinkage包匹配的列是否确实匹配。当一些记录不仅仅是由于虚假关联时,它们很有可能成为匹配。我想快速识别这些,而不是将我的数据导出到csv并逐个滚动它们。我想要的是迭代数据的每一行,并为每一行提示用户(我)提问“这是一个匹配(是/否)?”,其中答案('是'或'no')输入该行的列。
此代码将重现数据的快速示例
else if($page=='edit'){
$id = $_POST['id'];
$name = $_POST['nm'];
$email = $_POST['em'];
$phone = $_POST['ph'];
$address = $_POST['ad'];
$stmt = $db->prepare(" update crud set name=? , email=? , phone=? , address=? where id=?");
$stmt->bindValue(1,$name);
$stmt->bindValue(2,$email);
$stmt->bindValue(3,$phone);
$stmt->bindValue(4,$address);
$stmt->bindValue(5,$id);
if($stmt->execute()){
echo "succesfully updated";
}
else{
echo "failed updated data";
}
}
提供此结果,
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
我甚至不确定这是否可能,b)可行,或c)最好的方法。开放思想/建议。感谢。
答案 0 :(得分: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)