この簡単な例を考えてみましょう
library(dplyr)
library(purrr)
mydata <- dplyr::data_frame('value' = c(1,2,3))
> mydata
# A tibble: 3 x 1
value
<dbl>
1 1.
2 2.
3 3.
dataframe
とを引数として取る関数があり、number
反復ごとにデータフレームを変更したいと考えています。
私は次のように書いていますが、データフレームを更新しません:
myfunc <- function(df, numba){
name_var <- paste('year_', quo_name(numba), sep ='')
df <- df %>% mutate(!!name_var := 1)
return(df)
}
seq(2006, 2007, by = 1) %>%
purrr::walk(function(x) {mydata <- myfunc(mydata, x)})
残念ながらmydata
、正しく変更されていません:
seq(2006, 2007, by = 1) %>%
map(function(x) {mydata <- myfunc(mydata, x)})
与えます:
[[1]]
# A tibble: 3 x 2
value year_2006
<dbl> <dbl>
1 1. 1.
2 2. 1.
3 3. 1.
[[2]]
# A tibble: 3 x 2
value year_2007
<dbl> <dbl>
1 1. 1.
2 2. 1.
3 3. 1.
期待される出力は
# A tibble: 3 x 3
value year_2006 year_2007
<dbl> <dbl> <dbl>
1 1. 1. 1.
2 2. 1. 1.
3 3. 1. 1.
ここで何が欠けていますか?ありがとう!