【问题标题】:How to print specific rows in an r notebook document如何在 r 笔记本文档中打印特定行
【发布时间】:2020-01-24 20:54:37
【问题描述】:

我最近开始使用 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" &amp; 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       … 

输出是否可以全部打印在一页上,这意味着我的输出不需要滚动多个页面,对于我的读者来说,在一页上看到它们会更有意义。

【问题讨论】:

    标签: r printing rnotebook


    【解决方案1】:

    您可以使用拆分函数split(data, Region),它会返回如下内容:

    $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
    

    我修改了您的代码以将“测试版”放入数据框中。此外,请尽量避免使用像 t 这样的函数名称作为变量名称。

    【讨论】:

    • 这与我正在寻找的内容很接近,但我想这样做是为了获得独特的观察 test。例如,我想要那个输出,但只针对test 等于FirstPt_vs_LastPt 的行。我尝试使用:data%&gt;% subset(test == "FirstPt_vs_LastPt")%&gt;% split(data,data$Region) 没有用,但可以解释我想要做什么
    • data %&gt;% subset(test == "FirstPt_vs_LastPt") %&gt;% split(.$Region)
    猜你喜欢
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 2014-03-12
    • 2017-08-08
    • 1970-01-01
    相关资源
    最近更新 更多