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

R: Get 2 variable values to occupy single cell separated by new line

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

举个例子,假设我有以下数据:

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"   

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

> allVars
              [,1]       [,2]       [,3]         [,4]      
   var1andVar2 "100"      "200"      "300"        "400"
               "800"      "900"      "1,000"      "800"
   var3        "11"       "22"       "33"         "44"  

所以我的 var1 和 var2 占用了一个单元格,它们之间用新行隔开。

有什么想法可以实现吗??我很感激!!

这将创建一个矩阵 m 和数据框 d,其第一行包含 var1var2,第二行包含 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

给予:

> d
         1        2          3        4
1 100, 800 200, 900 300, 1,000 400, 800
2       11       22         33       44

> d[[1,1]][2]
[1] "800"

更新

已修订。

我查看了 Datatable (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 笔记本中 运行 这段代码,与输出非常相似

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