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

如何按Time列层级查找X1、X2中NA首次出现的时间点

找出X1和X2首次出现NA对应的Time时间点

你的需求是在整个数据集中定位第一个出现NA的位置对应的Time值,原代码的问题在于错误使用了group_by(Time)——这会把相同时间的行分组,最终得到的是每个时间组内第一个NA的行,而非全局首次出现NA的时间点。

针对单个变量的解法(以X1为例)

直接过滤出X1为NA的行,取第一行的Time即可:

# 获取X1首次出现NA的Time
data %>%
  filter(is.na(X1)) %>%
  slice(1) %>%
  select(Time)

运行后输出:

Time
1 week2

针对X2的解法

替换变量名即可复用逻辑:

# 获取X2首次出现NA的Time
data %>%
  filter(is.na(X2)) %>%
  slice(1) %>%
  select(Time)

输出结果:

Time
1 week1

一次性获取两个变量的结果

如果需要同时得到X1和X2的首次NA时间,可以用批量处理的方式:

# 批量获取X1、X2的首次NA时间点
first_na_times <- sapply(c("X1", "X2"), function(col) {
  data$Time[which(is.na(data[[col]]))[1]]
})

# 转换为数据框便于查看
as.data.frame(first_na_times)

输出结果:

first_na_times
X1           week2
X2           week1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:55:21