R:获取2个变量值以占用换行符分隔的单个单元格

时间:2018-08-03 13:25:50

标签: r dataframe bind paste

我试图获取2个变量值来填充1个单元格。

例如,说我有以下数据:

LabelTagHelper

此代码为我提供了以下输出:

var1 <- c("100","200","300","400")
var2 <- c("800","900","1,000","800")
var1andVar2 <- paste(var1,var2, sep = "\n")

var3 <- c("11","22","33","44")

allVars <- rbind(var1andVar2,var3)

但是我试图将其作为输出:

> allVars
              [,1]       [,2]       [,3]         [,4]      
   var1andVar2 "100\n800" "200\n900" "300\n1,000" "400\n800"
   var3        "11"       "22"       "33"         "44"   

因此,我的var1和var2占据了一个单元格,并且它们之间用换行符隔开。

任何想法如何实现这一目标?我很感激!!

2 个答案:

答案 0 :(得分:2)

我研究了数据表(DT)提供的选项,并且似乎存在行的分组选项,但是我对JavaScript不够精通,无法正确实现这一点。如果您想坚持使用DT,请查看此link

但是,我发现使用kableExtra中的打印选项可能会更优雅,该解决方案可以在html(发光)和pdf输出中使用: 有关更多信息,请参见here

library(tidyverse)
library(kableExtra)

var1 <- c("100","200","300","400")
var2 <- c("800","900","1,000","800")
var3 <- c("11","22","33","44")

allVars <- rbind(var1, var2 ,var3)

df <- allVars %>% as.tibble(rownames = "Vars")
df <- df %>% mutate(
    Vars = case_when(
        Vars %in% c("var1","var2") ~ "Var1andVar2",
        TRUE  ~ Vars
    )
)

kable(df) %>%
    kable_styling(full_width = F) %>%
    column_spec(1, bold = T) %>%
    collapse_rows(columns = 1:2, valign = "top")

我在R-mardown笔记本中运行了这段代码,很像输出

enter image description here

它也应该在Shiny-App中工作。

答案 1 :(得分:1)

这将创建一个矩阵C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer和数据帧m,其第一行包含dvar1,第二行包含var2

var3

给予:

m <- rbind(Map(c, var1, var2), as.list(var3))
d <- as.data.frame(m)
colnames(d) <- 1:ncol(d) # use numbers for column names

更新

修订。