Некоторые из условий внутри if
не являются допустимым синтаксисом, например,
"0.020" < vd$sn_r <= "0.025"
Это должно быть выражено как:
vd$sn_r > "0.020" & vd$sn_r <= "0.025"
При этом это неМне даже не ясно, что эти столбцы на самом деле не являются числовыми. В любом случае, мы можем попытаться исправить ваш код, но лучшим подходом будет что-то вроде case_when
из пакета dplyr
:
va$ETDRS_R <- case_when(
va$VACHART == 1 & va$sn_r > 0.025 ~ 85+50*log10(va$sn_r),
va$VACHART == 1 & va$sn_r > 0.020 ~ 5,
va$VACHART == 1 & va$sn_r > 0.015 ~ 3,
va$VACHART == 1 & va$sn_r > 0.005 ~ 1,
TRUE ~ 0
)