使用dplyr使用不同列的值向列名添加前缀

时间:2019-11-01 15:00:06

标签: r dataframe dplyr

有一个用于“为列名添加前缀”的线程,但是解决方案仅限于添加固定字符串作为前缀或后缀。是否可以将另一列的值作为前缀添加到列名?

例如,我有一个名为sum的列,还有另一个名为time_period的列,其值分别为yearmonth,具体取决于数据帧。我希望动态创建诸如year_summonth_sum之类的新列。 dplyr解决方案将是理想的,但不是必需的。

已经尝试了以下线程和相关线程: Adding a prefix to column names

df <- tibble(sum = c(150, 175, 200), time_period = c('year', 'year', 'year')) %>%
        rename_at(vars(sum), function(x) paste0(time_period, x)) %>%
        glimpse()

我收到以下错误:

  

paste0(time_period,x)中的错误:找不到对象'time_period'

我希望将列sum重命名为year_sum

1 个答案:

答案 0 :(得分:-1)

这是一个解决方法。它仅查看.WriteTo(..., eventIdProvider: yourProvider) 的第一行,并获取在那里找到的所有值:

    public static LoggerConfiguration EventLog(
        this LoggerSinkConfiguration loggerConfiguration,
        string source,
        string logName = null,
        string machineName = ".",
        bool manageEventSource = false,
        string outputTemplate = DefaultOutputTemplate,
        IFormatProvider formatProvider = null,
        LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum,
        IEventIdProvider eventIdProvider = null) // <#<#<#<#<#<#<#<#<#<#<#<#