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

Я использую этот код:

df1 <- data.frame(
      x1 = 'a'
      , x2 = 'b'
      , y = 0
)


df1 <- do.call("rbind", replicate(10, df1, simplify = FALSE))

for (row in 1:nrow(df1)) {
    df1[row,]$y = (row - 1) 
}

df1

Можно ли это улучшить с помощью функции применения семейства вместо цикла?Спасибо!

1 Ответ

0 голосов
/ 17 февраля 2019

А как насчет этого решения?

df1 <- data.frame(
    x1 = 'a'
    , x2 = 'b'
    , y = 0
)


df1 <- do.call("rbind", replicate(10, df1, simplify = FALSE))


df1$y <- sapply(1:nrow(df1), function(i)as.numeric(row.names(df1))[i]-1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...