我有一个按日期列出的酒店客房可用性数据库。每天都有一些酒店有空房(可用性 = T),有些则没有(可用性 = F)。 我正在寻找一种方法来计算每个日期的正确和错误的数量。 最初,数据框如下所示:
Room ID Date Availablity
112 1/1/19 T
112 2/1/19 F
112 3/1/19 F
113 1/1/19 F
113 2/1/19 T
114 1/1/19 T
我想计算每个日期具有 True 和 False 值的次数,然后绘制一年中每个数据的占用率图。 也就是说,一个 datefarme 看起来像这样:
Date num of Ts num of Fs
1/1/19 # #
2/1/19 # #
3/1/19 # #
感谢您的帮助!
最佳答案
我们可以在对“日期”和“可用性”列进行子集化后使用table
。它将从每个唯一“日期”的“可用性”中获取 FALSE/TRUE
计数
table(df1[-1])
或者采用tbl_df/data.frame
格式
library(dplyr)
library(tidyr)
df1 %>%
count(Date, Availablity) %>%
pivot_wider(names_from = Availablity, values_from = n, values_fill = list(n = 0))
类似于
df1 %>%
group_by(Date) %>%
summarise(num_of_false = sum(!Availablity), num_of_true = sum(Availablity))
数据
df1 <- structure(list(RoomID = c(112L, 112L, 112L, 113L, 113L, 114L),
Date = c("1/1/19", "2/1/19", "3/1/19", "1/1/19", "2/1/19",
"1/1/19"), Availablity = c(TRUE, FALSE, FALSE, FALSE, TRUE,
TRUE)), class = "data.frame", row.names = c(NA, -6L))
关于r - 计算每个日期的单元格数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59794719/