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

如何在R中将角度列数值转换为余弦值,处理start_time1、end_time1字段

实现方案

核心注意点

R 内置的三角函数cos()默认接收弧度值作为输入,你存储的是角度值,计算前需要先将角度转换为弧度:转换公式为 弧度 = 角度 * π / 180,也可以用lubridate包的deg2rad()函数直接转换。

方法1:基础R实现(无需安装额外包)

直接调用内置函数即可完成转换:

# 直接生成新列存储余弦值
data$start_cos <- cos(data$start_time1 * pi / 180)
data$end_cos <- cos(data$end_time1 * pi / 180)

# 或者用transform批量处理,代码更简洁
data <- transform(data,
                  start_cos = cos(start_time1 * pi / 180),
                  end_cos = cos(end_time1 * pi / 180))

方法2:tidyverse生态实现(适合管道流数据处理)

如果常用dplyr处理tibble格式数据,可以用mutate()+across()批量处理指定列,避免重复写代码:

library(dplyr)
data <- data %>%
  mutate(across(c(start_time1, end_time1),
                ~cos(.x * pi / 180),
                .names = "{col}_cos"))

如果已经安装了lubridate包,可以直接调用deg2rad()转换,代码可读性更强:

library(dplyr)
library(lubridate)
data <- data %>%
  mutate(across(c(start_time1, end_time1),
                ~cos(deg2rad(.x)),
                .names = "{col}_cos"))

以上两种方法运行后都会在原数据集基础上新增两列带_cos后缀的字段存储对应角度的余弦值,原有原始角度列不会被覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 08:54:07