Я следил за обсуждением ЗДЕСЬ, и мне любопытно, почему использование осуждается в R. Какую путаницу это вызовет?
Я также хотел бы получить несколько советов о том, как избежать . Я использую следующее довольно часто. Например:
### Create dummy data frame of 10 x 10 integer matrix.
### Each cell contains a number that is between 1 to 6.
df <- do.call("rbind", lapply(1:10, function(i) sample(1:6, 10, replace = TRUE)))
Чего я хочу добиться, так это сдвинуть каждое число вниз на 1, т. е. все двойки станут единицами, все тройки станут равными 2 и т. д. Таким образом, все n
будут равными п-1
. Я достигаю этого следующим образом:
df.rescaled <- df
sapply(2:6, function(i) df.rescaled[df.rescaled == i] <<- i-1))
Как в этом случае избежать ? В идеале я хотел бы иметь возможность передавать результаты sapply в другую переменную по строкам:
df.rescaled <- sapply(...)