#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