【问题标题】:How to make histogram with different columns in data set?如何制作数据集中不同列的直方图?
【发布时间】:2016-04-19 17:22:10
【问题描述】:

我必须从给定的文本文件 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 和 effrate 制作直方图。

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

hist(hw4aldData$v1) 

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

t(hw4aldData) 

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

但我不确定如何使用该表格中的所有数据点(来自每个 tanktemp 和 effrat 数据)制作直方图。

欢迎任何帮助,谢谢。

【问题讨论】:

  • hist(t(hw4aldData[-1])[,i]) 其中i 是数据集(即行)。示例 i=1 是 TankTemp,i=2 是 EffRat。
  • 或不转置hist(unlist(hw4aldData[i,-1]))
  • 有没有办法只针对特定的行名?

标签: r text histogram


【解决方案1】:

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

示例

我们使用内置的 iris 数据集作为值。我们只需要几行并将“物种”标签作为第一列就可以看起来像您的示例:

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]))

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

解决方案

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

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

现在我们可以按名称创建直方图。让我们试试“setosa”行:

hist(unlist(df["setosa",]))

完美。干杯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    相关资源
    最近更新 更多