#r
#r
Вопрос:
Был выполнен следующий код:
tb <- tibble(
year <- rep(2001:2020,10)
)
tb %<>% arrange(year) %>%
mutate(
id <- rep(1:10,20),
r1 <- rnorm(200,0,1),
r2 <- rnorm(200,1,1),
r3 <- rnorm(200,2,1)
)
Затем появилось сообщение об ошибке:
Ошибка: сбой arrange() на неявном шаге mutate(). x не удалось создать временный столбец для ..1
. ..1
ℹ есть year
.
Кто-нибудь может пролить свет на причину?
Ответ №1:
Попробуйте это. Похоже, проблема с назначением переменных. Попробуйте заменить <-
by =
и %<>%
by %>%
. Вот возможное решение:
#Data
tb <- tibble(
year = rep(2001:2020,10)
)
#Code
tb %>% arrange(year) %>%
mutate(
id = rep(1:10,20),
r1 = rnorm(200,0,1),
r2 = rnorm(200,1,1),
r3 = rnorm(200,2,1)
)
Вывод:
# A tibble: 200 x 5
year id r1 r2 r3
<int> <int> <dbl> <dbl> <dbl>
1 2001 1 1.10 1.62 2.92
2 2001 2 0.144 1.18 1.08
3 2001 3 -0.118 2.32 3.15
4 2001 4 -0.912 0.701 1.36
5 2001 5 -1.44 -0.648 1.11
6 2001 6 -0.797 1.95 -0.333
7 2001 7 1.25 -0.113 1.85
8 2001 8 0.772 1.62 2.32
9 2001 9 -0.220 1.51 1.29
10 2001 10 -0.425 1.37 3.24
# ... with 190 more rows
Комментарии:
1. Спасибо! Я никогда не понимал, что есть какая-то разница между
<-
и=
2. @tobinz Да, это так,
<-
используется для присвоения значений глобальной среде.=
также может использоваться для этого, но он отлично работает внутри структур в виде фреймов данных, подобных тем, которые вы используете. Таким образом, ошибки, на которые вы можете поспорить, могут быть связаны с тем, что новые переменные были созданы как объекты в глобальной среде, а не были созданы внутри объекта dataframe.