【发布时间】:2012-04-16 06:07:57
【问题描述】:
我正在使用每小时数据集 1 年,并尝试计算工作日(周一至周五)和周末(周六、周日)值的总和,并添加到数据集底部的新行中。我的数据框如下所示:
我使用以下命令创建了整周的总和:
## calculate column sum
df[366,(3:27)] <- colSums(df[,3:27], na.rm = T)
然后用这个计算每列中缺失值的数量:
## calculate number of missing values in a column
NA.find <- function(x) length(which(is.na(x))) #function for finding missing values
myNumCols <- which(unlist(lapply(df, is.numeric)))
df[(nrow(df) + 1), myNumCols] <- sapply(df[, myNumCols],NA.find )
现在我正在尝试计算 (Column v1:total) 之间的工作日和周末总和以及缺失值的数量,并像我在所有日子中所做的那样添加底部的行。
我知道我需要以某种方式定义我的日期,以便 R 可以读取它,然后使用一些如何子集工作日和周末,我想出如何像这样子集个人:
e = colsplit(df1$date,split=" ",names=c("day1","day2","month"))
df2 = cbind(df1[,c("type","date")],day=e[1],cdate=e[2],month=e[3],df1[,3:ncol(df1)])
df3 = subset(df2, day1 == "Mon")
但我不确定如何将其子集表示为周一:周五和周六:周日?
我想要实现的是从 (368:371) 创建 4 个新行,并添加工作日总数、工作日缺失值数、周末总数、周末缺失值数。
非常感谢, 绫
【问题讨论】: