У меня есть файл csv, и я хочу получить специализированный вывод, просто введя идентификатор (PIPAPNr) для буквы Например ввод = PIPAP1147
выход Роджер Надаль 11.07.1993
Pipapnr = "PIPAP1147"
for (i in 1:nrow(Patienten)){
if (Patienten$PIPAP.Nr.==Pipapnr)
DOB<- (Patienten$Geburtsdatum[i])
Name<- (Patienten$Name[i])}
Ошибка
In if (Patienten$PIPAP.Nr. == Pipapnr) DOB <- (Patienten$Geburtsdatum[i]) :
the condition has length > 1 and only the first element will be used
In if (Patienten$PIPAP.Nr. == Pipapnr) DOB <- (Patienten$Geburtsdatum[i]) : the condition has length > 1 and only the first element will be used
В этом коде Pipapnr
содержит только одно значение, однако Patienten$PIPAP.Nr.
, вероятно, содержит много значений, поэтому сравнений много, и используется только первое.
Это объяснение сообщения об ошибке. Вероятно, вы хотели, чтобы пункт if
читался как if (Patienten$PIPAP.Nr.[i]==Pipapnr) ...
Тем не менее, Джон Гарланд прав в своем комментарии, что с этими вещами можно справиться более элегантно в R. Может быть, что-то вроде which(Patienten$PIPAP.Nr.==Pipapnr
?
Поскольку ваш код читается по-немецки, может быть, вас интересует немецкий форум R по адресу http://forum.r-statistik.de?
Пожалуйста, предоставьте минимальный рабочий пример с несколькими записями данных. Во-вторых, R имеет множество, если не сотни специализированных функций для всех видов операций с базами данных во многих форматах. Написание собственных циклов for отнимает много времени и неэффективно, поскольку встроенные функции гораздо более оптимизированы и уже полностью отлажены (ну, в основном!). Начните с изучения базовых функций R which() и unique(). В конце концов, вы, вероятно, захотите посмотреть таблицы данных, если вы находитесь в большой обстановке.