小编Fra*_*ash的帖子

使用月份传播重新格式化数据框架,并按照其在R中的日历订单进行排序

我有一个data.frame给出如下.我试图将它从长格式转移到宽格式.使用传播列为日期.从tidyr包中使用扩散函数提出了两个问题:

  • 数据用NA填充
  • 这几个月按字母顺序排序

那我怎么去

30-Apr-2015 632.95
28-May-2015 532.95
25-Jun-2015 232.95
Run Code Online (Sandbox Code Playgroud)

30-Apr-2015 28-May-2015 25-Jun-2015
632.95      532.95      232.95
Run Code Online (Sandbox Code Playgroud)

相反,我最终在

30-Apr-2015 25-Jun-2015 28-May-2015 
632.95      NA      232.95
NA          232.95  NA
NA          NA      532.95
Run Code Online (Sandbox Code Playgroud)

实际日期并不重要,但是它们的相对排序事项,即最近的月份数据应该按顺序进入第一列,然后是其他两个月的数据.这是必要的,因为我正在使用rbind结果

我试过的代码

data = tidyr::spread(data, key = EXPIRY_DT, value = CHG_IN_OI)
colnames(data)[3:5] = c('Month1', 'Month2', 'Month3')
Run Code Online (Sandbox Code Playgroud)

data.frame如下所示:

data = structure(list(SYMBOL = c("A", "A", "A", "B", "B", "B", "C", 
"C", "C", "D", "D", "D"), EXPIRY_DT = c("30-Apr-2015", "28-May-2015", 
"25-Jun-2015", "30-Apr-2015", "28-May-2015", "25-Jun-2015", "30-Apr-2015", 
"28-May-2015", "25-Jun-2015", "30-Apr-2015", "28-May-2015", …
Run Code Online (Sandbox Code Playgroud)

r dataframe tidyr

5
推荐指数
1
解决办法
306
查看次数

使用python获取当月的最后一个星期四

按照这个答案,我试图获取当月最后一个星期四的日期。但是我的代码没有跳出循环。

from datetime import datetime
from dateutil.relativedelta import relativedelta, TH

todayte = datetime.today()
cmon = todayte.month

nthu = todayte
while nthu.month == cmon:
    nthu += relativedelta(weekday=TH(1))
    #print nthu.strftime('%d%b%Y').upper()
Run Code Online (Sandbox Code Playgroud)

python datetime python-dateutil

4
推荐指数
1
解决办法
5712
查看次数

有条件地ggplot线或点绘图

我正在使用ggplot在函数内写一堆图.我想将另一个标志传递给函数,以便我可以在调用函数时选择是否绘制线条或点.

目前我这样做:

plot2pdfHD = function(opdata, dir = 'plots'){
  #... do something ...
  plots <- list()

  for (i in seq(strikes)){
    #... do something ...
    plots[[i]] <- ggplot(sset, aes(x = TIMESTAMP, y = value, col = optype)) + 
      geom_line() + labs(x = "Time", y = 'values') + 
      #... do something ...
  }

  pdf(paste0(dir, '/', Sys.Date(), '.pdf'), width=16, height=10)
  for(i in seq(length(plots)))
    tryCatch({print(plots[[i]])}, error = function(e) NULL)
  dev.off()
}
Run Code Online (Sandbox Code Playgroud)

我想添加一个标志,以便通过适当的值设置为标志,我可以之间进行切换geom_line(),并geom_point()同时调用该函数.

加成:

可以在不重复额外调用部分的情况下完成,即#... do something ...?我希望得到一个答案.

也是sset …

r ggplot2

1
推荐指数
1
解决办法
5039
查看次数

标签 统计

r ×2

dataframe ×1

datetime ×1

ggplot2 ×1

python ×1

python-dateutil ×1

tidyr ×1