R: цикл пользовательской функции по определенным строкам и столбцам - PullRequest
0 голосов
/ 21 января 2019

Я хочу зациклить выбор столбцов и все их строки и применить вложенную функцию If Else, чтобы заменить все элементы.

Table[c("Pb","Pc","Pd","Pe","Pf")] <-  lapply(Table[c("Pb","Pc","Pd","Pe","Pf")], function(x) {
                                       if (x <0.50) {round_any(x,0.05)}
                                  else if (x <1.00) {round_any(x,0.10)}
                                  else if (x <2.00) {round_any(x,0.25)}
                                  else if (x <5.00) {round_any(x,0.50)}
                                  else              {round_any(x,1)}
                                              })

Код работает, но я получаю следующее предупреждение: 1: In if (x < 0.5) { ... : the condition has length > 1 and only the first element will be used и результаты не совсем такие, как я ожидал. Есть ли другой способ, которым я могу произвести этот вывод?

1 Ответ

0 голосов
/ 21 января 2019
Table[c("Pb","Pc","Pd","Pe","Pf")] <- lapply(Table[c("Pb","Pc","Pd","Pe","Pf")], function(x) {
                                       ifelse (x <0.50, round_any(x,0.05),
                                       ifelse (x <1.00, round_any(x,0.10),
                                       ifelse (x <2.00, round_any(x,0.25),
                                       ifelse (x <5.00, round_any(x,0.50), 
                                               round_any(x,1)))))})
...