R中是否有函数可对列每值与固定数取min并生成新列?
完全不需要用循环或者lapply/rapply,直接用向量化操作就能实现,效率更高,代码也更简洁。
R语言内置的pmin()函数就是专门处理这种「多组值按对应位置取最小值」的需求,你要的效果一行代码就能搞定:
# 构造示例输入数据 df <- data.frame(Column = c(1, 2, 3)) # 指定对比阈值 threshold <- 2 # 直接生成新列 df$new_Column <- pmin(df$Column, threshold)
运行后df的输出结果完全符合预期:
| Column | new_Column |
|---|---|
| 1 | 1 |
| 2 | 2 |
| 3 | 2 |
pmin是底层C实现的向量化函数,运算速度远高于R层面的循环或者apply族函数,数据量越大优势越明显。如果需要同时对多列做同逻辑处理,也可以直接传入多列数据批量操作,不用挨个写循环。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

