Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过提示用户输入R更新列_R_Loops_Match_Prompt - Fatal编程技术网

通过提示用户输入R更新列

通过提示用户输入R更新列,r,loops,match,prompt,R,Loops,Match,Prompt,我有一个数据框,在其中我需要手动筛选每一行,并确定我使用RecordLink包匹配的列是否确实匹配。有些记录很有可能是匹配的,而不仅仅是因为虚假的关联。我希望在不将数据导出到csv并逐案滚动的情况下快速识别这些数据。相反,我希望遍历数据的每一行,并为每一行提示用户(我)一个问题“这是匹配(y/n)吗?”,其中答案(‘是’或‘否’)将输入到该行的一列中 这段代码将重现一个快速的数据示例 id= c(1, 2, 3, 4) loc1 = c("21ST AVE", "5TH ST", "HICKMA

我有一个数据框,在其中我需要手动筛选每一行,并确定我使用RecordLink包匹配的列是否确实匹配。有些记录很有可能是匹配的,而不仅仅是因为虚假的关联。我希望在不将数据导出到csv并逐案滚动的情况下快速识别这些数据。相反,我希望遍历数据的每一行,并为每一行提示用户(我)一个问题“这是匹配(y/n)吗?”,其中答案(‘是’或‘否’)将输入到该行的一列中

这段代码将重现一个快速的数据示例

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
每行回答“是”或“否”将得到以下结果

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)最好的方法。乐于接受想法/建议。谢谢。

先做一个函数

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))
}

checkrow看看这太棒了,谢谢谢谢!我将其更改为
return(df=cbind(df,match))
,以便每次保存列值。效果很好。
checked<-checkRow(df)