首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将data.frame转换为数字/矩阵,并从csv文件的时间序列创建条形图

如何将data.frame转换为数字/矩阵,并从csv文件的时间序列创建条形图
EN

Stack Overflow用户
提问于 2013-07-23 22:07:39
回答 2查看 3K关注 0票数 1

我想做一个雪花数据的柱状图。数据存储在.csv文件中,有一个date列和12个Location列,其中SWE值为整数。为了创建条形图,数据类型必须是向量或矩阵。因此,我的问题是如何将文件(data.frame)转换为矩阵并从中创建分组条形图。X轴应该是"date",Y轴是"SWE mm“我的.csv文件看起来像这样:

代码语言:javascript
复制
Date     SB1 SB2 SB3 ...
1.1.2013 95  90  91  ...
1.2.2013 87  80  82  ...
1.3.2013 45  30  15  ...
1.4.2013 23  18  3   ...

到目前为止,我尝试了:

代码语言:javascript
复制
setwd("path")
swe = read.csv("name.csv", header=TRUE, sep=";")
swe$new = paste(swe$Date," ")
swe$new = strptime(swe$new, "%d.%m.%Y")
swe2 <- data.matrix(swe)
dimnames(swe2) <- NA
jpeg("swe_sb1.jpg")
barplot(swe2$Date, swe2$SWE_SB1, ..., beside = TRUE)
dev.off()

它给出了错误消息:

代码语言:javascript
复制
> setwd("path")
> swe = read.csv("name.csv", header=TRUE, sep=";")
> swe$new = paste(swe$Date," ")
> swe$new = strptime(swe$new, "%d.%m.%Y")
> swe2 <- data.matrix(swe)
> dimnames(swe2) <- NA
Fehler in dimnames(swe2) <- NA : 'dimnames' muss eine Liste sein
> str(swe2)
num [1:4, 1:38] 2 1 3 4 119 117 87 118 54 35 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:38] "Date" "SWE_SB1" "SH_SB1" "SD_SB1" ...
> jpeg("swe_sb1.jpg")
> barplot(swe2$Date, swe2$SWE_SB1)
Fehler in swe2$Date : $ operator is invalid for atomic vectors
> dev.off()
jpeg:75:swe_all.jpg 
              2 

任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

发布于 2013-07-24 00:23:41

你让事情变得更难了。R对它的所有功能都有很好的例子,所以?barplot可能是一个更好的起点。

无论如何,你所拥有的是一个矩阵,你想要从这个矩阵中得到一个分组的盒子图。如果您有一个类似于示例的矩阵,您可以通过输入VADeaths来查看

代码语言:javascript
复制
Rural       Male Rural   Female     Urban Male   Urban Female
50-54       11.7         8.7        15.4         8.4
55-59       18.1         11.7       24.3         13.6
60-64       26.9         20.3       37.0         19.3
65-69       41.0         30.9       54.6         35.1
70-74       66.0         54.3       71.1         50.0

如果您想创建一个boxplot,您只需输入barplot(VADeaths,grouped=T),结果就是

如果您想要切换x和y,您所要做的就是barplot(t(VADeaths),grouped=T),并且您需要:

。因此,您所要做的就是使用read.csv或其他工具读取数据,转置并绘制它!

票数 2
EN

Stack Overflow用户

发布于 2015-06-03 03:25:29

read.csv()返回data.frame,barplot()不接受此类。

在打印前使用as.matrix()将数据转换为可接受的类:x <-as.matrix(x)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17812579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档