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

如何用R语言dplyr批量将多列开尔文温度转换为摄氏度?

批量将开尔文温度列转换为摄氏度(R dplyr实现)

针对你的需求,有几种简单方式实现批量转换:

1. 直接指定目标列名

如果你明确知道要转换的列(MaxTemp、MinTemp、MeanTemp),可以把它们放在向量里传给across的.cols参数:

DF %>%
  mutate(across(.cols = c(MaxTemp, MinTemp, MeanTemp), 
                .fns = ~ .x - 273.15))

这里用公式语法~ .x - 273.15替代了原来的匿名函数,写法更简洁,效果完全一致。

2. 通过列名模式批量匹配

如果你的温度列都带有Temp关键词(比如以Temp结尾),可以用匹配函数自动选中这些列,不用手动列全:

# 匹配所有以"Temp"结尾的列
DF %>%
  mutate(across(.cols = ends_with("Temp"), 
                .fns = ~ .x - 273.15))

# 或者匹配所有名称包含"Temp"的列(适合列名格式灵活的场景)
DF %>%
  mutate(across(.cols = contains("Temp"), 
                .fns = ~ .x - 273.15))

3. 保留原列并生成新列

如果需要保留原始的开尔文温度列,同时生成摄氏度列(添加后缀区分),可以使用.names参数:

DF %>%
  mutate(across(.cols = ends_with("Temp"), 
                .fns = ~ .x - 273.15,
                .names = "{.col}_C"))

执行后会生成MaxTemp_C、MinTemp_C、MeanTemp_C这些新列,原列保持不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 00:09:22