You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中计算每日heaterstatus为0的观测值占比?

计算每日heaterstatus为0的观测值占比(R语言新手版)

步骤1:安装并加载必要的包

新手推荐用tidyverse包集合,它包含了数据处理和时间处理的工具,一次安装就能搞定大部分需求:

# 仅第一次使用时安装
install.packages("tidyverse")
# 加载包
library(tidyverse)

步骤2:处理时间列

首先要确保你的时间列是R能识别的日期时间格式,然后提取出日期(用来按天分组):
假设你的数据集叫df,时间列名为datetime,执行以下代码:

df <- df %>%
  # 转换时间列格式,根据实际时间格式调整函数:
  # 比如"年-月-日 时:分:秒"用ymd_hms,"日/月/年 时:分"用dmy_hms
  mutate(datetime = lubridate::ymd_hms(datetime),
         # 提取日期部分,生成新的date列
         date = as.Date(datetime))

步骤3:计算每日占比

按日期分组,统计每日总观测数、heaterstatus为0的数量,最后算出百分比:

daily_result <- df %>%
  group_by(date) %>%
  summarize(
    每日总观测数 = n(),
    heaterstatus为0的数量 = sum(heaterstatus == 0, na.rm = TRUE),
    # 计算百分比并保留两位小数
    0值占比(%) = round((heaterstatus为0的数量 / 每日总观测数) * 100, 2)
  )
  • na.rm = TRUE:如果数据有缺失值,这一步会忽略它们,避免计算出错
  • round(..., 2):把百分比保留两位小数,结果更整洁

新手提示

  • 用class(df$datetime)查看时间列类型,若结果是character就需要用lubridate函数转换
  • 若时间列带时区,可在lubridate函数里加tz参数,比如ymd_hms(datetime, tz = "Asia/Shanghai")

内容的提问来源于stack exchange,提问作者Notslayer205

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 12:35:23