首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个小项目中处理日期和其他问题

在一个小项目中处理日期和其他问题
EN

Stack Overflow用户
提问于 2014-02-08 15:46:47
回答 1查看 265关注 0票数 0

我正在为我们班做一个小项目。我从一个网站得到了一个数据集:Map/#map

我使用下面的代码成功地导入了数据

代码语言:javascript
复制
disease<- read.csv('Added Source information for vaccine map-3.csv')

我的问题是:

  1. 我怎样才能看到一些特定的价值?例如,我想把“麻疹”列在“类别”栏中。我只想看到一列一列的值:)
  2. 我怎么处理这些日期?当我检查它的模式时,它似乎是数字的。我怎样才能把它们转换成日期?另外,如图所示,有些日期间隔为"3/2010-9/2010",但也有一些日期为"5/2014“。我应该如何处理这些日期,以使一个良好的可视化或类似的东西?

我不能添加图片的表,因为我刚刚加入网站,没有足够的声誉,以分享一个形象。

EN

回答 1

Stack Overflow用户

发布于 2014-02-08 17:41:51

也许这可以作为一个开始:

代码语言:javascript
复制
loc <- "https://docs.google.com/spreadsheet/pub?hl=en_US&hl=en_US&key=0AjivqRkNvfzudElKUDJKdlkya29wS2VUTlVFZlBoVVE&single=true&gid=0&output=csv"
dat <- read.csv(
    loc, 
    na.string=c("Sya", "unknown", "NA"), 
    colClasses=c(
        rep("character", 3), 
        rep("numeric", 2), 
        "character", 
        rep("numeric", 2),
        rep("character", 3)
    )
)
str(dat)

这里,colClasses参数显式地定义了每个列的数据类型。如果数据不合适,则会引发错误。na.string选项指定表示在data.frame中获取NA值的“不可用”项的条目。字符编码可能有一些问题,我在这里没有研究过。

要只看到“麻疹”条目,可以使用:

代码语言:javascript
复制
View(subset(dat, Category=="Measles"))

对于使用Date列,第一个想法是将start和可选end月份分为两列:

代码语言:javascript
复制
start_date <- function(d) strsplit(d, "-")[[1]][[1]]
start_date <- Vectorize(start_date)

end_date <- function(d) {
    spl <- strsplit(d, "-")[[1]]
    spl[[length(spl)]]
}
end_date <- Vectorize(end_date)    

dat <- transform(dat,
    StartDate=start_date(Date),
    EndDate=end_date(Date),
    stringsAsFactors=FALSE
)

现在,您可以筛选在给定月份开始的条目。

代码语言:javascript
复制
str(subset(dat, StartDate=="12/2013"))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21648053

复制
相关文章

相似问题

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