R和Excel中的周数输出不同

R和Excel中的周数输出不同,r,R,R和Excel中的工作日输出是不同的。有没有办法使两个输出相同。如果可能,R的输出应与Excel电子表格匹配。以下是代码和数据,以供参考: structure(list(Pred_date = structure(c(7L, 8L, 10L, 2L, 9L, 14L, 6L, 12L, 5L, 15L, 13L, 3L, 1L, 12L, 12L, 3L, 12L, 12L, 4L, 7L, 9L, 11L, 11L), .Label = c("5/28/2020", "5/30/2020"

R和Excel中的工作日输出是不同的。有没有办法使两个输出相同。如果可能,R的输出应与Excel电子表格匹配。以下是代码和数据,以供参考:

structure(list(Pred_date = structure(c(7L, 8L, 10L, 2L, 9L, 14L, 
6L, 12L, 5L, 15L, 13L, 3L, 1L, 12L, 12L, 3L, 12L, 12L, 4L, 7L, 
9L, 11L, 11L), .Label = c("5/28/2020", "5/30/2020", "6/1/2020", 
"6/12/2020", "6/13/2020", "6/20/2020", "6/22/2020", "6/23/2020", 
"6/24/2020", "6/25/2020", "6/4/2020", "6/6/2020", "7/11/2020", 
"7/18/2020", "7/4/2020"), class = "factor")), class = "data.frame", row.names = c(NA, 
-23L))
library(lubridate)
date$Pred_date<-mdy(date$Pred_date)
date$Week_Act_Pay<-lubridate::week(ymd(date$Pred_date))
head(date)
structure(列表)前日期=结构(c(7L、8L、10L、2L、9L、14L、,
6L、12L、5L、15L、13L、3L、1L、12L、12L、3L、12L、12L、12L、4L、7L、,
9L、11L、11L),.Label=c(“2020年5月28日”、“2020年5月30日”、“2020年6月1日”,
"6/12/2020", "6/13/2020", "6/20/2020", "6/22/2020", "6/23/2020", 
"6/24/2020", "6/25/2020", "6/4/2020", "6/6/2020", "7/11/2020", 
“2020年7月18日”、“2020年7月4日”)、class=“factor”)、class=“data.frame”、row.names=c(NA、,
-(23L))
图书馆(lubridate)

日期$Pred_dateExcel的
WEEKNUM
函数的起始日期为“星期日”,1月1日是一年中的第一周。您可以使用
格式的
“%U”
并向其中添加1来复制相同的输出

date$Week_Act_Pay <- as.integer(format(date$Pred_date, "%U")) + 1

date$Week\u Act\u PayExcel的
WEEKNUM
函数的起始日期为“星期日”,1月1日是一年中的第一周。您可以使用
格式的
“%U”
并向其中添加1来复制相同的输出

date$Week_Act_Pay <- as.integer(format(date$Pred_date, "%U")) + 1

date$Week\u Act\u Pay文档显示这两个函数(R的
Week
和Excel的
WEEKNUM
)计算的内容不同

  • R:计算给定日期和1月1日之间的7天周期数,加上1
  • Excel:计算周数,使包含1月1日的周为一年中的第一周,并假设该周从周日开始。这也被称为“epi周”(流行病学的缩写),或“CDC周”
在R中,只需使用
lubridate::epiweek()
即可获得epi周

此示例显示了如何计算2020年1月13日的日期

因此,在您的数据中,您可以使用以下方法在R中获得Excel结果:

date$Week_Act_Pay<-lubridate::week(ymd(date$Pred_date))
head(date)

文档显示这两个函数(R的
week
和Excel的
WEEKNUM
)计算的内容不同

  • R:计算给定日期和1月1日之间的7天周期数,加上1
  • Excel:计算周数,使包含1月1日的周为一年中的第一周,并假设该周从周日开始。这也被称为“epi周”(流行病学的缩写),或“CDC周”
在R中,只需使用
lubridate::epiweek()
即可获得epi周

此示例显示了如何计算2020年1月13日的日期

因此,在您的数据中,您可以使用以下方法在R中获得Excel结果:

date$Week_Act_Pay<-lubridate::week(ymd(date$Pred_date))
head(date)

您是如何在excel中计算周数的?=周数(A2):这是excel中的公式您是如何在excel中计算周数的?=周数(A2):这是excel中的公式