在 R 中绘制不同大小的独立数据集

Plotting independent data sets of different size in R

我想读取 3 个独立的数据集,每个数据集都有不同的大小,并使用箱线图绘制它们,例如:

Set1 Set2 Set3
1    1    1
1    2    2
1    2    2
     3    3
     3    3
          4

(作为字符串:"Set1 Set2 Set3\n1 1 1\n1 2 2\n1 2 2\n 3 3\n 3 3\n 4\n"

但是,列宽可能会有所不同,例如当一个值超过 5 位时。

当我这样做时 results = read.table("data.dat", header=TRUE) RStudio 将报告:

line 4 did not have 3 elements

使用选项 fill=TRUE 会将第 4 行中的每个字段向左移动,并用 NA 填充右侧的空字段,这会直接影响数据。

由于列大小可能不同,我尝试将其加载为 CSV 文件,但这导致 Set1 的中位数变为 NA

与 CSV 相同的数据:

Set1,Set2,Set3
1,1,1
1,2,2
1,2,2
,3,3
,3,3
,,4

那么,如何在 R 不更改数据的情况下在单个图表中绘制所有集合?

EDIT1: 提供了所用数据格式的更多详细信息。我还强调列的大小可能会有所不同,并且不会像示例中那样固定

这将读取具有指定字段宽度的指定文件。跳过第一行(header 行)并使用指定的列名。空字段 (na.strings="") 被视为 NA:

results <- read.fwf("data.dat", widths = c(5L, 5L, 5L), skip = 1, 
  na.strings = "", col.names = c("Set1", "Set2", "Set3"))

boxplot(results)

(图片后续)

注意: 无法从问题中分辨出 data.dat 的确切内容,这可能是至关重要的,但出于此答案的目的,我们假设:

Lines <- c("Set1 Set2 Set3", 
           "1    1    1", 
           "1    2    2", 
           "1    2    2", 
           "     3    3", 
           "     3    3", 
           "          4")
writeLines(Lines, "data.dat")