来自单个变量条件的多个箱线图

时间:2019-07-17 03:14:33

标签: r

我正在寻找一种简化的方法,可以根据Base R中的单个变量的条件来创建多个箱形图。我知道如何通过创建新列并使用公式来做到这一点,但希望有一种方法可以仅在boxplot()函数(即一步)。

例如,说我的数据如下:

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        WebBrowser1.Document.GetElementById("create-email").SetAttribute("value", "XXXXXXXX@gmail.com")
        WebBrowser1.Document.GetElementById("create-password").SetAttribute("value", "PASSWORD")
        WebBrowser1.Document.GetElementById("create-submit").InvokeMember("click")
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

    End Sub

    Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        WebBrowser1.Size = WebBrowser1.Document.Window.Size
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

    End Sub
End Class

我是否可以仅通过使用boxplot()函数,根据BatAge <30是否将'R'列分为两个箱形图,而不必创建一个预先对其进行排序的变量?

2 个答案:

答案 0 :(得分:3)

这应该有效:

boxplot(R ~ BatAge > 30, data = df)

enter image description here

答案 1 :(得分:0)

您将不得不使用boxplot之外的某些函数来生成类别变量。

在基础R中使用Hmisc::cut2的一种方法,假设数据帧名为mydata

boxplot(R ~ Hmisc::cut2(BatAge, 30), mydata)

enter image description here

或使用dplyr::mutate()

library(dplyr)
mydata %>% 
  mutate(Group = ifelse(BatAge >= 30, "High", "Low")) %>% 
  boxplot(R ~ Group, .)