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

基于多条件查找密度增值的R语言数据处理需求及代码优化

R语言数据处理优化方案

场景与需求

  • 数据集df3包含2个site,depth以0.1为间隔从0.1到15.1取值,density随深度变化
  • 核心目标:针对每个site,找到depth≥10m后density首次比10m处增加0.03对应的深度,完成两项输出:
    1. 给df3新增一列,将该深度值填充到对应site的所有行(注:全量数据中site的depth范围实际为0-2000m,间隔0.1)
    2. 生成仅包含site和对应目标深度的新数据集df4

原实现代码

depth <- seq(from = 0.1, to =15.1, by = 0.1)

density <- c(NA,   NA, NA, NA, NA, 1027.073188,    1027.073543,    1027.073898, 1027.074253,   1027.074607,    1027.074962,    1027.075317,    1027.075672,    1027.076026, 1027.076381, 1027.076736, 1027.077118, 1027.077501,    1027.077884,    1027.078267,    1027.078649,    1027.079032,    1027.079415,    1027.079797,    1027.08018, 1027.080563,    1027.081026,    1027.081489,    1027.081952,    1027.082415,    1027.082878,    1027.08334, 1027.083803,    1027.084266,    1027.084729,    1027.085192,    1027.085663,    1027.086134,    1027.086605,    1027.087076,    1027.087547,    1027.088018,    1027.088489,    1027.08896, 1027.089431,    1027.089909,    1027.090387,    1027.090865,    1027.091344,    1027.091822,    1027.0923,  1027.092778,    1027.093256,    1027.093735,    1027.094213,    1027.094691,    1027.095162,    1027.095633,    1027.096104,    1027.096575,    1027.097046,    1027.097517,    1027.097987,    1027.098458,    1027.098929,    1027.0994,  1027.099871,    1027.100342,    1027.100813,    1027.101284,    1027.101755,    1027.102226,    1027.102697,    1027.103167,    1027.103638,    1027.104109,    1027.104556,    1027.105003,    1027.10545, 1027.105897,    1027.106344,    1027.106791,    1027.107237,    1027.107684,    1027.108131,    1027.108578,    1027.109041,    1027.109504,    1027.109967,    1027.110429,    1027.110892,    1027.111355,    1027.111818,    1027.112281,    1027.112744,    1027.113207,    1027.113683,    1027.114159,    1027.114635,    1027.115112,    1027.115588,    1027.116065,    1027.116542,    1027.117019,    1027.117497,    1027.117974,    1027.118451,    1027.118928,    1027.119406,    1027.119883,    1027.12036, 1027.120836,    1027.121312,    1027.121788,    1027.122264,    1027.12274, 1027.123216,    1027.123692,    1027.124167,    1027.124643,    1027.125119,    1027.125595,    1027.126071,    1027.126547,    1027.127023,    1027.127499,    1027.127975,    1027.128451,    1027.128926,    1027.129402,    1027.129878,    1027.130354,    1027.13083, 1027.131305,    1027.131781,    1027.132257,    1027.132732,    1027.133208,    1027.133684,    1027.134159,    1027.134635,    1027.135111,    1027.135587,    1027.136062,    1027.136538,    1027.137014,    1027.137489,    1027.137965,    1027.138441,    1027.138916,    1027.139392)

df <- as.data.frame(cbind(depth, density))
df$site <- 1

df2 <- as.data.frame(cbind(depth, density-0.015))
df2$site <- 2
colnames(df2)[2] <- "density"

df3 <- rbind(df, df2)

miss <- function(x) ifelse(is.finite(x),x,NA)
depths <- df3 %>% 
 group_by(site) %>%
  summarize(
   change=miss(depth[which( (c(rep(NA,99),  density[100:length(density)]) - density[100]) >= 0.003 )[1] ]),

简化优化方案

原代码存在硬编码行号、逻辑晦涩、类型转换隐患等问题,以下是更简洁通用的实现:

完整简化代码

library(dplyr)

# 生成原始数据(优化类型与拼接逻辑)
depth <- seq(from = 0.1, to =15.1, by = 0.1)
density <- c(NA,   NA, NA, NA, NA, 1027.073188,    1027.073543,    1027.073898, 1027.074253,   1027.074607,    1027.074962,    1027.075317,    1027.075672,    1027.076026, 1027.076381, 1027.076736, 1027.077118, 1027.077501,    1027.077884,    1027.078267,    1027.078649,    1027.079032,    1027.079415,    1027.079797,    1027.08018, 1027.080563,    1027.081026,    1027.081489,    1027.081952,    1027.082415,    1027.082878,    1027.08334, 1027.083803,    1027.084266,    1027.084729,    1027.085192,    1027.085663,    1027.086134,    1027.086605,    1027.087076,    1027.087547,    1027.088018,    1027.088489,    1027.08896, 1027.089431,    1027.089909,    1027.090387,    1027.090865,    1027.091344,    1027.091822,    1027.0923,  1027.092778,    1027.093256,    1027.093735,    1027.094213,    1027.094691,    1027.095162,    1027.095633,    1027.096104,    1027.096575,    1027.097046,    1027.097517,    1027.097987,    1027.098458,    1027.098929,    1027.0994,  1027.099871,    1027.100342,    1027.100813,    1027.101284,    1027.101755,    1027.102226,    1027.102697,    1027.103167,    1027.103638,    1027.104109,    1027.104556,    1027.105003,    1027.10545, 1027.105897,    1027.106344,    1027.106791,    1027.107237,    1027.107684,    1027.108131,    1027.108578,    1027.109041,    1027.109504,    1027.109967,    1027.110429,    1027.110892,    1027.111355,    1027.111818,    1027.112281,    1027.112744,    1027.113207,    1027.113683,    1027.114159,    1027.114635,    1027.115112,    1027.115588,    1027.116065,    1027.116542,    1027.117019,    1027.117497,    1027.117974,    1027.118451,    1027.118928,    1027.119406,    1027.119883,    1027.12036, 1027.120836,    1027.121312,    1027.121788,    1027.122264,    1027.12274, 1027.123216,    1027.123692,    1027.124167,    1027.124643,    1027.125119,    
相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 00:14:32