首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tsibble::fill_gaps和对变量中数字列名的引用

tsibble::fill_gaps和对变量中数字列名的引用
EN

Stack Overflow用户
提问于 2020-06-10 06:23:16
回答 2查看 63关注 0票数 1

下面是我的代码:

代码语言:javascript
复制
library(fpp3)
library(dplyr)
my_df <- data.frame("dates" = as.Date(c("2020-03-01", "2020-03-02", "2020-03-05")), 
                    "col_1" = c(1,2,23))
colnames(my_df) <- c("dates", "1")

i <- 1

test <- my_df %>% as_tsibble(., index=dates) %>% 
  fill_gaps(., as.character(i) = 1)

它会生成错误:

代码语言:javascript
复制
Error: unexpected '=' in:
"test <- my_df %>% as_tsibble(., index=dates) %>% 
  fill_gaps(., as.character(i) ="

我也试过了

代码语言:javascript
复制
test <- my_df %>% as_tsibble(., index=dates) %>% 
  fill_gaps(., !!as.character(i) = 1)

test <- my_df %>% as_tsibble(., index=dates) %>% 
  fill_gaps(., !!quo_name(i) = 1)

但得到了相同的错误。有简单的解决方法吗?我需要让它像声明的那样工作,我不能将dataframe列名更改为非数字的名称。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-10 06:31:38

我们可以使用setNames

代码语言:javascript
复制
my_df %>%
      as_tsibble(., index=dates) %>% 
      fill_gaps(!!! setNames(1, i))
# A tsibble: 5 x 2 [1D]
#  dates        `1`
#  <date>     <dbl>
#1 2020-03-01     1
#2 2020-03-02     2
#3 2020-03-03     1
#4 2020-03-04     1
#5 2020-03-05    23
票数 1
EN

Stack Overflow用户

发布于 2020-06-10 06:40:22

一般来说,列名不应该是数字,但在这里,如果有必要,你可以使用反引号:

代码语言:javascript
复制
test <- my_df %>% as_tsibble(., index=dates) %>% 
    fill_gaps(., `1` = 1)

(您甚至不需要定义i。)

结果是:

代码语言:javascript
复制
# A tsibble: 5 x 2 [1D]
  dates        `1`
  <date>     <dbl>
1 2020-03-01     1
2 2020-03-02     2
3 2020-03-03     1
4 2020-03-04     1
5 2020-03-05    23
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62292839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档