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

如何编写R脚本根据表达值列推导拷贝数(copy-number)列数据

R脚本实现方案

核心逻辑

使用R自带的cut()函数做区间分组,属于向量化运算,处理万行级数据效率极高,无需循环操作。

完整代码

步骤1:模拟示例数据(已有实际数据可跳过此步)

set.seed(123)
df <- data.frame(
  gene_name = paste0("gene_", 1:10000),
  `expression values` = rnorm(10000, mean = 0, sd = 2),
  `copy-number` = NA,
  check.names = FALSE
)

步骤2:按规则计算拷贝数

# 计算表达值绝对值
expr_abs <- abs(df$`expression values`)

# 区间分组赋值
df$`copy-number` <- cut(
  x = expr_abs,
  breaks = c(0, 0.5, 1.5, 2.5, 3.5),
  labels = c(1, 2, 3, 4),
  right = FALSE, # 左闭右开区间,匹配需求规则
  include.lowest = TRUE # 包含0值
)

# 转为数值类型(按需执行,cut默认返回因子类型)
df$`copy-number` <- as.numeric(as.character(df$`copy-number`))

步骤3:结果验证

# 查看前10行结果核对
head(df, 10)

注意事项

  • 如果你的列名不含空格,可直接写列名无需加反引号包裹
  • 上述代码默认绝对值≥3.5的取值为NA,若需要将≥3.5的数值也归为拷贝数4,可将breaks参数修改为c(0, 0.5, 1.5, 2.5, Inf)即可
  • 边界值完全匹配需求:0≤x<0.5取1,0.5≤x<1.5取2,1.5≤x<2.5取3,2.5≤x<3.5取4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 14:42:03