首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R formattable()防止删除具有相似名称的列

R formattable()防止删除具有相似名称的列
EN

Stack Overflow用户
提问于 2019-05-01 09:41:04
回答 1查看 173关注 0票数 1

我有一个简单的问题,我想我可以找到一个答案...

我在我的shinyApp上使用了一个很棒的包formattable()。下面是我遇到的问题的一个简化示例:

代码语言:javascript
复制
library(formattable)

df <- data.frame(
    ID = LETTERS[1:4], 
    `2018` = c(0.5, 0.9, 0.8, 0.4), 
    n = c(88, 44, 55, 66), 
    `2019` = c(0.9, 0.8, 0.7, 0.4), 
    n = c(78, 84, 54, 25))

names(df)[2] <- '2018'
names(df)[4] <- '2019'

formattable(
  df, align = c("l", "r", "l", "r", "l"),
  list(
    `2018` = function(x) percent(x, digits = 1),
    `2019` = function(x) percent(x, digits = 1)
  )
)

这可以很好地工作,但我希望将列n.1命名为n。当我将n.1的列名重命名为n,并运行相同的代码来创建表时,最后一列删除了...似乎只显示具有重复名称的任何列的第一列。

代码语言:javascript
复制
names(df)[5] <- "n"

formattable(
  df, align = c("l", "r", "l", "r", "l"),
  list(
    `2018` = function(x) percent(x, digits = 1),
    `2019` = function(x) percent(x, digits = 1)
  )
)

如何显示列名中包含两个n的表?

问候你,Luc

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-01 12:52:29

如果只是为了显示,您可以在第二个n列的名称中添加一个空格(使用check.names = FALSE),如下所示:

代码语言:javascript
复制
df <- data.frame(ID     = LETTERS[1:4], 
                 `2018` = c(0.5,0.9,0.8,0.4), 
                 n      = c(88,44,55,66), 
                 `2019` = c(0.9,0.8,0.7,0.4), 
                 `n `   = c(78,84,54,25), 
                 check.names = FALSE)

df

formattable(df,
            align=c("l", "r", "l", "r", "l"),
            list(
              `2018` = function(x) percent(x, digits = 1),
              `2019` = function(x) percent(x, digits = 1)
            )
)

这将为您提供所需的输出:

希望你会发现它是有用的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55930684

复制
相关文章

相似问题

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