如何打印 r notebook 文档中的特定行

How to print specific rows in an r notebook document

我最近开始使用 R notebook 来注释我的脚本并与同事共享信息。我在下面创建了一个类似于 data 的数据框:

t <- data.frame(test=c("FirstPt_vs_LastPt", "FirstPt_vs_First3", "FirstPt_vs_First5", 
       "FirstPt_vs_First7", "FirstPt_vs_First10"))
n <- 5
test <- do.call("rbind", replicate(n,t,simplify=F))
Element <- rep(c("Copper", "Lead", "Zinc", "Bor", "Mag"), each = 5)
Region <- rep("alpha", 25)
p.value <- data.frame(p.value=sample(1:100,50,replace = T))

data <- cbind(test, Element, Region, p.value)

这些是 Region==Alpha 的所有观察结果。在同一个数据框中,我对其他几个 Regions 有相同的观察列表。例如,我们会说其他 Regions 包括 BetaCharlie。我一直在使用:subset(data, test == "FirstPt_vs_LastPt" & Region == "Alpha")Region == Alpha 中打印 FirstPt_vs_LastPt 的值。然后我必须制作一个新的代码块,键入相同的内容,并将 Alpha 更改为 Beta 以获得该区域的结果。

有没有办法收集 test 下所有 FirstPt_vs_LastPt 的行,并像这样打印每个唯一 Region 的结果?:

Alpha

test                  Element   p.value
FirstPt_vs_LastPt      Copper    … 
FirstPt_vs_LastPt      Lead      … 
FirstPt_vs_LastPt      Zinc      …
FirstPt_vs_LastPt      Bor       … 
FirstPt_vs_LastPt      Mag       … 

Beta

test                  Element   p.value
FirstPt_vs_LastPt      Copper    … 
FirstPt_vs_LastPt      Lead      … 
FirstPt_vs_LastPt      Zinc      …
FirstPt_vs_LastPt      Bor       … 
FirstPt_vs_LastPt      Mag       … 

Charlie

test                  Element   p.value
FirstPt_vs_LastPt      Copper    … 
FirstPt_vs_LastPt      Lead      … 
FirstPt_vs_LastPt      Zinc      …
FirstPt_vs_LastPt      Bor       … 
FirstPt_vs_LastPt      Mag       … 

并且可以将输出全部打印在一页上,这意味着我不会将输出滚动到多个页面,让我的读者在一页上看到它们更有意义。

您可以使用拆分函数 split(data, Region),它将 return 像这样:

$alpha
                 test Element Region p.value
1   FirstPt_vs_LastPt  Copper  alpha      28
2   FirstPt_vs_First3  Copper  alpha      88
3   FirstPt_vs_First5  Copper  alpha      16
4   FirstPt_vs_First7  Copper  alpha       8
...

$beta
                 test Element Region p.value
31  FirstPt_vs_LastPt  Copper   beta      44
32  FirstPt_vs_First3  Copper   beta      20
33  FirstPt_vs_First5  Copper   beta      89
34  FirstPt_vs_First7  Copper   beta      87

我修改了您的代码以将 'beta' 放入数据框中。另外,尽量避免使用像 t 这样的函数名称作为变量名称。