如何在数据集中使用不同的列进行直方图?

时间:2016-04-19 17:22:11

标签: r text histogram

我必须从包含以下内容的给定文本文件hw4aldData中创建直方图:

170 172 173 174 174 175 176 177 180 180 180 180 180 181 181 182 182 182 182 184 184 185 186 188
0.84 1.31 1.42 1.03 1.07 1.08 1.04 1.80 1.45 1.60 1.61 2.13 2.15 0.84 1.43 0.90 1.81 1.94 2.68 1.49 2.52 3.00 1.87 3.08

但是每个数据集在R中显示为不同的列,如:

         v1   v2    v3   v4   v5
   TankTemp  170   172  173  174 
     EffRat 0.84  1.31 1.42 1.03

还有更多的数据点,但我只想展示它的样子。我需要为tanktemp制作直方图并使其有效。

我知道如何分隔列以制作直方图:

hist(hw4aldData$v1) 

我知道如何切换到转置矩阵:

t(hw4aldData) 

但是这不适用于列开头的行名称。

但是我不确定如何使用这种形式的所有数据点,从每个tanktemp和effrat数据制作直方图。

欢迎任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

在Stack Overflow上提出问题的第一步是创建一个可重现的示例。这是一个小例子,用户可以输入他们的计算机来测试,诊断和解决您的问题。它不仅可以帮助其他人,还可以帮助您正确评估问题,并在创建示例时找到解决方案。

示例

我们使用内置的虹膜数据集作为值。我们只需要几行和#34; Species"标签作为第一列看起来像你的例子:

Tracker tracker1 = null;
switch(i) {
    case 0:
        if(tracker1 == null) {
            tracker1 = new Tracker();
        } else {
            tracker1.setVisible(true);
        }
        break;
}

这只占用了一行,对于您可视化和分享您所面临的问题非常有帮助。

重现错误

您没有显示您收到的错误,但我们可以显示:

df <- iris[c(1,80,150),c(5,1:4)]
df
#        Species Sepal.Length Sepal.Width Petal.Length Petal.Width
# 1       setosa          5.1         3.5          1.4         0.2
# 80  versicolor          5.7         2.6          3.5         1.0
# 150  virginica          5.9         3.0          5.1         1.8

我们发现了问题,第一列有文字,其他栏则没有。

<强>解决方案

让我们创建要调用的行名称并删除第一列:

hist(df[1,])
Error in hist.default(df[1, ]) : 'x' must be numeric

hist(t(df[,1]))

现在我们可以按名称创建直方图。让我们试试&#34; setosa&#34;行:

row.names(df) <- df[,1]
df <- df[-1]
df
#            Sepal.Length Sepal.Width Petal.Length Petal.Width
# setosa              5.1         3.5          1.4         0.2
# versicolor          5.7         2.6          3.5         1.0
# virginica           5.9         3.0          5.1         1.8

完美。欢呼声。