从flextable中的字符串动态设置colnames
Dynamically set colnames from character string in flextable
flextable
帮助详细信息将添加新 header 描述为针对每个新 header 名称手动键入每个现有 header 名称,如下所示:
library(flextable)
ft_1 <- regulartable(head(iris))
ft_1 <- set_header_labels(ft_1, Sepal.Length = "SL",
Sepal.Width = "SW", Petal.Length = "PL",
Petal.Width = "PW"
)
ft_1
如何从
等字符串中添加所有新的 header 名称
(names2<-c('SL','SW','PL','PW','SPECIES'))
[1] "SL" "SW" "PL" "PW" "SPECIES"
?
到目前为止,我已经找到了一个非常老套的解决方案:
names(names2)<-names(ft_1$header$dataset[1,])
ft_1$header$dataset[1,]<-names2
好的,经过几次编辑后,我希望这对你有用。
你的方法看起来也很不错。
names1 <- c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species")
names2 <- c('SL','SW','PL','PW','SPECIES')
ft <- flextable( head( iris ),
col_keys = names1 )
oldHeaders <- names1
newHeaders <- names2
headerlist <- setNames(as.list(newHeaders),
oldHeaders)
ft <- do.call(set_header_labels, c(list(x = ft, top = F), headerlist))
ft
set_header_labels
用于对 header 值进行微小修改。如果要将 df 列名称映射到一组一个或多个新的 header 行,则可以使用 set_header_df
:https://davidgohel.github.io/flextable/articles/layout.html#define-headers-with-a-reference-table
library(flextable)
names1 <- c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species")
names2 <- c('SL','SW','PL','PW','SPECIES')
ft <- flextable( head( iris ) )
ft <- set_header_df(x = ft, mapping = data.frame(keys = names1, values = names2, stringsAsFactors = FALSE),
key = "keys" )
# the following call is needed as header formats have been
# replaced by vanilla formats when set_header_df() has been called
ft <- theme_booktabs(ft)
ft
flextable
帮助详细信息将添加新 header 描述为针对每个新 header 名称手动键入每个现有 header 名称,如下所示:
library(flextable)
ft_1 <- regulartable(head(iris))
ft_1 <- set_header_labels(ft_1, Sepal.Length = "SL",
Sepal.Width = "SW", Petal.Length = "PL",
Petal.Width = "PW"
)
ft_1
如何从
等字符串中添加所有新的 header 名称(names2<-c('SL','SW','PL','PW','SPECIES'))
[1] "SL" "SW" "PL" "PW" "SPECIES"
?
到目前为止,我已经找到了一个非常老套的解决方案:
names(names2)<-names(ft_1$header$dataset[1,])
ft_1$header$dataset[1,]<-names2
好的,经过几次编辑后,我希望这对你有用。
你的方法看起来也很不错。
names1 <- c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species")
names2 <- c('SL','SW','PL','PW','SPECIES')
ft <- flextable( head( iris ),
col_keys = names1 )
oldHeaders <- names1
newHeaders <- names2
headerlist <- setNames(as.list(newHeaders),
oldHeaders)
ft <- do.call(set_header_labels, c(list(x = ft, top = F), headerlist))
ft
set_header_labels
用于对 header 值进行微小修改。如果要将 df 列名称映射到一组一个或多个新的 header 行,则可以使用 set_header_df
:https://davidgohel.github.io/flextable/articles/layout.html#define-headers-with-a-reference-table
library(flextable)
names1 <- c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species")
names2 <- c('SL','SW','PL','PW','SPECIES')
ft <- flextable( head( iris ) )
ft <- set_header_df(x = ft, mapping = data.frame(keys = names1, values = names2, stringsAsFactors = FALSE),
key = "keys" )
# the following call is needed as header formats have been
# replaced by vanilla formats when set_header_df() has been called
ft <- theme_booktabs(ft)
ft