Создайте функцию, которая заменяет значения, где n <5, случайным числом от 1 до 4 (целое число) - PullRequest
1 голос
/ 15 мая 2019

Я довольно новичок в R и столкнулся с проблемой, которую, по-видимому, не могу решить самостоятельно. Это должно быть довольно легко, ты.

Я хочу написать обобщенную функцию, которая манипулирует столбцом n в фрейме данных df. Я хочу, чтобы он выполнял простую задачу для каждой строки, когда n <5, он должен заменить это значение случайным числом от 1 до 4. </p>

df <- data.frame(n= 1:10, y = letters[1:10],
                 stringsAsFactors = FALSE)

Какое самое элегантное решение?

1 Ответ

3 голосов
/ 15 мая 2019

Один из способов сделать это - создать логический индекс на основе столбца, создать подмножество столбца на основе индекса и присвоить значения sample d

f1 <- function(dat, col) {
      i1 <- dat[[col]] < 5
      dat[[col]][i1] <- sample(1:4, sum(i1), replace = TRUE)
      dat
  }

f1(df, "n")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...