r - 绘制小标题的行
问题描述
我是R新手,所以请原谅我。我有一个名为 ycd 的小标题,其中包含我想针对时间绘制的列。我在 tibble 中有一个具有相应日期的列。由于数据不可用,某些列的 NA 直到某个日期。我不想用零填充它,我只希望列的行在数据存在时开始,在数据不存在时保持为空。这是我对 str(ycd) 的调用:
> str(ycd)
spec_tbl_df [7,808 x 13] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
$ Date : chr [1:7808] "1/2/1990" "1/3/1990" "1/4/1990" "1/5/1990" ...
$ 1 Mo : chr [1:7808] "N/A" "N/A" "N/A" "N/A" ...
$ 2 Mo : chr [1:7808] "N/A" "N/A" "N/A" "N/A" ...
$ 3 Mo : num [1:7808] 7.83 7.89 7.84 7.79 7.79 7.8 7.75 7.8 7.74 7.89 ...
$ 6 Mo : num [1:7808] 7.89 7.94 7.9 7.85 7.88 7.82 7.78 7.8 7.81 7.99 ...
$ 1 Yr : num [1:7808] 7.81 7.85 7.82 7.79 7.81 7.78 7.77 7.77 7.76 7.92 ...
$ 2 Yr : num [1:7808] 7.87 7.94 7.92 7.9 7.9 7.91 7.91 7.91 7.93 8.1 ...
$ 3 Yr : num [1:7808] 7.9 7.96 7.93 7.94 7.95 7.94 7.95 7.95 7.98 8.13 ...
$ 5 Yr : num [1:7808] 7.87 7.92 7.91 7.92 7.92 7.92 7.92 7.94 7.99 8.11 ...
$ 7 Yr : num [1:7808] 7.98 8.04 8.02 8.03 8.05 8.05 8 8.01 8.07 8.18 ...
$ 10 Yr: num [1:7808] 7.94 7.99 7.98 7.99 8.02 8.02 8.03 8.04 8.1 8.2 ...
$ 20 Yr: chr [1:7808] "N/A" "N/A" "N/A" "N/A" ...
$ 30 Yr: num [1:7808] 8 8.04 8.04 8.06 8.09 8.1 8.11 8.11 8.17 8.25 ...
- attr(*, "problems")= tibble [1,006 x 5] (S3: tbl_df/tbl/data.frame)
..$ row : int [1:1006] 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 ...
..$ col : chr [1:1006] "30 Yr" "30 Yr" "30 Yr" "30 Yr" ...
..$ expected: chr [1:1006] "a double" "a double" "a double" "a double" ...
..$ actual : chr [1:1006] "N/A" "N/A" "N/A" "N/A" ...
..$ file : chr [1:1006] "'YeildCurve.csv'" "'YeildCurve.csv'" "'YeildCurve.csv'" "'YeildCurve.csv'" ...
- attr(*, "spec")=
.. cols(
.. Date = col_character(),
.. `1 Mo` = col_character(),
.. `2 Mo` = col_character(),
.. `3 Mo` = col_double(),
.. `6 Mo` = col_double(),
.. `1 Yr` = col_double(),
.. `2 Yr` = col_double(),
.. `3 Yr` = col_double(),
.. `5 Yr` = col_double(),
.. `7 Yr` = col_double(),
.. `10 Yr` = col_double(),
.. `20 Yr` = col_character(),
.. `30 Yr` = col_double()
.. )
我尝试执行以下操作,但没有成功。
ggplot(data=ycd) + geom_point(aes(x=ycd$Date,y=ycd$`1 Mo`,size=10)) +
geom_point(aes(x=ycd$Date,y=ycd$`2 Mo`,size=10)) +
geom_point(aes(x=ycd$Date,y=ycd$`3 Mo`,size=10)) +
geom_point(aes(x=ycd$Date,y=ycd$`6 Mo`,size=10)) +
geom_point(aes(x=ycd$Date,y=ycd$`1 Yr`,size=10)) +
geom_point(aes(x=ycd$Date,y=ycd$`2 Yr`,size=10)) +
geom_point(aes(x=ycd$Date,y=ycd$`3 Yr`,size=10)) +
geom_point(aes(x=ycd$Date,y=ycd$`5 Yr`,size=10)) +
geom_point(aes(x=ycd$Date,y=ycd$`7 Yr`,size=10)) +
geom_point(aes(x=ycd$Date,y=ycd$`10 Yr`,size=10)) +
geom_point(aes(x=ycd$Date,y=ycd$`20 Yr`,size=10)) +
geom_point(aes(x=ycd$Date,y=ycd$`30 Yr`,size=10)) +
geom_smooth(method = "lm", se=FALSE, color="black")
有什么建议吗?我正在考虑将其转换为 data.frame 但我发现它是一个简单的出路。我好想学tibble!
数据是在 https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yield中找到的表格, 复制并粘贴到 Excel 文档中并使用read_csv()
解决方案
使用末尾注释中可重现的 DF 运行以下命令。如果您想要单独的面板,请省略 facet=NULL。
library(zoo)
library(ggplot2)
z <- read.zoo(DF, format = "%m/%d/%Y")
autoplot(z, facet = NULL) + ggtitle("My Series")
笔记
DF <- data.frame(Date = c("1/2/1990", "1/3/1990", "1/4/1990", "1/5/1990"),
a = c(NA, 1:3), b = c(3:1, NA))
推荐阅读
- javascript - SyntaxError: Unexpected token { with Jest and Babel
- javascript - 反应自定义 TextInput 控件无法键入任何内容
- powershell - 更新数据表中的行并保存到数据库
- mysql - 如何在一个查询中使用多项选择?
- azure - 从应用程序设置读取的 Azure 函数应用程序不起作用
- javascript - 我需要从 Google 表格向此功能添加第二个电子邮件地址
- excel - 跨同一工作簿的vba - 对象_工作表的方法范围失败
- android - 测试文本是否被删除
- laravel - 数据表警告:表 id=appraisalTable - Ajax 错误。有关此错误的更多信息,请参阅 http://datatables.net/tn/7 Laravel
- javascript - 打字稿的递归函数中应该使用哪种类型声明?