【发布时间】:2018-11-18 10:06:39
【问题描述】:
如何使用从 csv 文件读取的数据框中的 3 列数据绘制条形图?我尝试使用以下代码执行此操作,但在获得所需的输出时遇到了一些困难:
setwd("\\path\\to\\csv")
df = read.csv("xxxx.csv")
# All hospitals in AL
AL = df[grep("AL", df$State),]
hos <-subset(AL,Hospital.Name=='COOPER GREEN MERCY HOSPITAL')
# Gives me "Error in -0.01 * height : non-numeric argument to binary operator"
hos <- data.frame (HeartAttack=hos$Heart.Attack.Mortality,HeartFailure=hos$Heart.Failure..Mortality,
Pneumonia=hos$Pneumonia.Mortality)
# Gives me the graph without displaying the x-axis values
# but completely defeats the purpose of reading from a csv file since the values are hard-written
#hos <- data.frame (HeartAttack=c(1),HeartFailure=c(5),Pneumonia=c(10))
barplot(t(as.matrix(hos)),main='Mortality Rate in Cooper Green Mercy Hospital',
xlab='Illness',ylab='Mortality Rate',beside=TRUE)
csv 文件有 10 个标题(从左到右):Hospital.Name、City、State、County.Name、Heart.Attack.Mortality、Heart.Attack.Readmission、 Heart.Failure..Mortality、Heart.Failure.Readmission、Pneumonia.Mortality 和 Pneumonia.Readmission。粗体字是我感兴趣的栏目。
注意:我已经看过这些twoSO questions,但它们并没有完全解决我的问题。
【问题讨论】:
-
我们无权访问您的磁盘文件,因此创建
hos的代码不可重现。您可以发布示例数据吗?请使用dput(hos)的输出编辑问题。或者,如果dput(head(hos, 20))的输出太大。 -
如果你对基本情节不感兴趣,你可以使用
ggplot2::geom_col。您可以使用tidyr::gather将列重排为变量:值对。 -
@RuiBarradas 我已经提供了有问题的 csv 文件。