我已经按照需要配置了数据,但是花了15行代码。我确定可以在1或2中完成,而且我希望对此有更好的了解。这是...
我有一个包含11个变量的表,该变量包括日期,4对价差和价格观察值,后跟对应于数据列的年份和季度。这4对数据分别对应不同的TBA抵押息票(3%,3.5%,4%,4.5%)。
我需要将8列分别命名为ZSpread和Price,分为2列,然后每对都标记有优惠券类型。
这是我使用的代码。谢谢!
mbs3 <- mbstrimlast[,c("Date",ZSpread="FN3sprd",Price="FN3px")]
names(mbs3) <- c("Date","Zspread","Price")
mbs3.5 <- mbstrimlast[,c("Date",ZSpread="FN3.5sprd",Price="FN3.5px")]
names(mbs3.5) <- c("Date","Zspread","Price")
mbs4 <- mbstrimlast[,c("Date",ZSpread="FN4sprd",Price="FN4px")]
names(mbs4) <- c("Date","Zspread","Price")
mbs4.5 <- mbstrimlast[,c("Date",ZSpread="FN4.5sprd",Price="FN4.5px")]
names(mbs4.5) <- c("Date","Zspread","Price")
mbs3$Type = c("FN3")
mbs3.5$Type = c("FN3.5")
mbs4$Type = c("FN4")
mbs4.5$Type = c("FN4.5")
mbslast = bind_rows(mbs3, mbs3.5, mbs4, mbs4.5)
mbslast <- mbslast %>% mutate(Yeartag = year(mbslast$Date))
mbslast <- mbslast %>% mutate(Qtag = quarters(mbslast$Date, abbreviate = T))
答案 0 :(得分:0)
我们可以使用tidyverse
包使代码更干净一些,以完成此任务。首先,我们使用gather
从宽到长整形,然后使用type
和key
创建grepl
和gsub
列,最后使用{{ 1}},以使数据恢复为整齐的格式。
spread