Сопоставьте вводимые пользователем данные со всего csv-файла R shiny

#r #shiny #rstudio

#r #блестящий #rstudio

Вопрос:

Извините за этот вопрос, я новичок в R-shiny, я пытаюсь проверить пользовательский ввод, доступен ли он в файле csv или нет, но он просто соответствует 1-й строке файла csv, а не всему столбцу файла csv. Я попытался использовать array, чтобы проверить что-то подобное:

 output$usignin <- renderUI({
login <- read.csv("check.csv", header = TRUE, na.strings = c("","NA"))
na.omit(login)
asd = match(login$email[3], input$email)
zxc = match(login$password[3], input$password)
if((!is.na(asd)) amp;amp; (!is.na(zxc))){
  h4("Correct")
}
else{
  h4("Forgot Password?")
}
})
  

И это сработало, но я хочу, чтобы это делалось динамически, а не статически, устанавливая значения массива login$email[n] . Попробовал цикл for, у меня не сработали какие-либо другие предложения, или я мог допустить какую-либо ошибку при использовании цикла for?

Ответ №1:

Это немного сложно определить с таким небольшим образцом кода, но это должно сработать:

 output$usignin <- renderUI({
login <- read.csv("check.csv", header = TRUE, na.strings = c("","NA"))
na.omit(login)

asd = match(input$email, login$email)
zxc = match(input$password, login$password)

test_match <- asd == zxc

if(!is.na(test_match) amp;amp; test_match){
  h4("Correct")
}
else{
  h4("Forgot Password?")
}
})
  

Комментарии:

1. Я попробовал это, и это сработало, спасибо. Но теперь возникла проблема в том, что он проверяет, не совпадает ли адрес электронной почты пользователя и пароль, например abc@gmail.com пароль 12345, и он проверяет это электронное письмо на 45678, так что этого делать не следует, так что теперь, что мне делать?

2. что вы имеете в виду, проверяя это электронное письмо на 45678?

3.я говорю, что, например, мой файл содержит 2 записи пользователя id1: abc@example.com password: 12345 id2: def@example.com password: 45678 , поэтому, если теперь я принимаю пользовательский ввод, такой как id: abc@example.com password: 45678 это делает эту вещь правильной, хотя пароль для abc@example.com 12345