Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R formattable()防止删除具有类似名称的列_R_Formattable - Fatal编程技术网

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

R formattable()防止删除具有类似名称的列,r,formattable,R,Formattable,我有一个简单的问题,我想我能找到答案 我正在为我的shinyApp使用奇妙的包formattable()。以下是我遇到的问题的简化示例: 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] &

我有一个简单的问题,我想我能找到答案

我正在为我的shinyApp使用奇妙的包
formattable()
。以下是我遇到的问题的简化示例:

    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'
    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)
                )
    )
库(格式化表)

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

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)
            )
)

data.frame
中的
df,调用,尝试使用
check.names=FALSE
df我仍然得到与第二列删除相同的结果。我认为是formattable()中的某些内容导致了它的删除,而不是其中的数据帧。对不起,我在评论对data.frame的调用,因为您似乎再次通过赋值将其更改回去。我认为该函数只使用唯一的列名
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)
            )
)