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

请求协助:基于Significance标识对log2FC列数值升序排名

为指定条件行的数值列升序分配排名

需求说明

需要为数据框中Significance列标记为Yes的行,根据log2FC列的数值升序分配排名,新增Rank列;Significance为No的行,Rank列留空。

初始数据

treatment=c(100,200,100,400)
cotrol=c(100,100,400,100)
log2FC=c(0,1,-2,2)
Significance=c("No","Yes","Yes","Yes")
data=data.frame(treatment,cotrol,log2FC,Significance)

初始数据表:

treatmentcotrollog2FCSignificance
1001000No
2001001Yes
100400-2Yes
4001002Yes

解决方案

方法1:基础R实现

# 初始化Rank列为NA(对应空值)
data$Rank <- NA
# 仅对Significance为Yes的行计算升序排名
data$Rank[data$Significance == "Yes"] <- rank(data$log2FC[data$Significance == "Yes"])

方法2:dplyr包实现(简洁直观)

library(dplyr)

data <- data %>%
  mutate(Rank = case_when(
    # 对符合条件的行计算log2FC的升序排名
    Significance == "Yes" ~ rank(log2FC),
    # 其余行设为NA
    TRUE ~ NA_real_
  ))

最终结果

执行代码后的数据表与期望一致:

treatmentcotrollog2FCSignificanceRank
1001000No
2001001Yes2
100400-2Yes1
4001002Yes3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 17:55:17