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

时间:2015-04-14 14:54:54

标签: r boxplot

我想阅读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:为使用的数据格式提供更多详细信息。我还要强调,列大小可能会有所不同,而不是在示例

中固定

1 个答案:

答案 0 :(得分:1)

这将使用指定的字段宽度读取指示的文件。跳过第一个(标题行)并使用指示的列名称。空字段(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)

(图片后继续)

enter image description here

注意:我无法从问题中确定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")