【发布时间】:2019-01-08 08:29:19
【问题描述】:
没有函数包装的代码会执行所需的操作,但是当我将函数包装在它周围时会返回 NULL
遵循任何复制两次的代码都应转换为函数的建议,我尝试用我在程序中经常生成的小标题来制作一个函数。
但是当我把它放在一个函数中时,返回的是NULL
# This works
for.gas <- tibble(Year = (start-1):(start+h-1))
for(i in countries){
test.df <- tibble(Year = (start-1):(start+h-1),
n = NA
)
colnames(test.df) <- c("Year", paste(i))
for.gas <- left_join(for.gas, test.df)
}
# This doesn't
create.df <- function(df_name){
df_name <- tibble(Year = (start-1):(start+h-1))
for(i in countries){
test.df <- tibble(Year = (start-1):(start+h-1),
n = NA
)
colnames(test.df) <- c("Year", paste(i))
df_name <- left_join(df_name, test.df)
}
}
# Expected results
# A tibble: 31 x 5
Year Argentina Belgium Brazil Canada
<int> <lgl> <lgl> <lgl> <lgl>
1 2017 NA NA NA NA
2 2018 NA NA NA NA
3 2019 NA NA NA NA
4 2020 NA NA NA NA
5 2021 NA NA NA NA
6 2022 NA NA NA NA
7 2023 NA NA NA NA
8 2024 NA NA NA NA
9 2025 NA NA NA NA
10 2026 NA NA NA NA
# ... with 21 more rows
感谢所有帮助。谢谢。
【问题讨论】: