R mutate 不会添加列

R mutate won't add columns

我正在尝试使用 mutate 函数为我的数据形成三个新列。我试过定义一些数据,但没有改变。我看过以前的示例,但似乎都在使用 mutate 之前使用了组函数。我想我不需要在使用 mutate 之前创建一个组,因为它不适合我的数据。

这是我使用的 R 代码:


    title: "lnrmssd"
    author: "AG"
    date: '2022-03-16'
    output: pdf_document
    ---
    ```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo = FALSE)
    
    
    library(tidyverse)
    library(readxl)
    library(here)
    library(knitr)
    library(caTools)
    library(httpuv)
    library(zoo)
    library(RcppRoll)
    library(dplyr)
    
    hrv <- read_excel(here("hrvdata.xlsx"))
    
    
    
    hrv <- na.omit(hrv)
    
     ### not sure if I need to define
    
    lnrmssd <- pull(hrv,3)
    HRVSD <- sd(lnrmssd, na.rm = T)
    HRVRM <- rollmean(lnrmssd,7, na.pad = T, align = 'right')
    
    ### here is where I am trying to mutate
    
    mutate("HRVSD" = sd(lnrmssd, na.rm = T)
    "HRVRM" = rollmean(lnrmssd,7, na.pad = T, align = 'right')
      upper_limit = round(HRVRM + 1.5 * HRVSD, 3),
             lower_limit = round(HRVRM - 1.5 * HRVSD, 3),
             lower_limit2 = round(HRVRM - .75 * HRVSD, 3))

这是我正在使用的数据集,它是通过excel导入的:

|date       | reading        |lnrmssd |
| --------  | -------------- |------- |
| 2022-02-17| 68.9077        |4.232768|
| 2022-02-18| 62.4076        |4.133895|
| 2022-02-19| 70.7072        |4.258547|
| 2022-02-21| 81.9841        |4.406525|
| 2022-02-22| 74.8368        |4.315310|
| 2022-02-23| 84.9140        |4.441639|
| 2022-02-24| 72.4620        |4.283062|
| 2022-02-25| 79.0891        |4.370575|
I am trying to add three columns to this table, these columns would be "upper_limit", "lower_limit", and "lower_limit2".

Any help would be much appreciated.
hrv <- read_excel(here("hrvdata.xlsx"))
hrv <- na.omit(hrv)

hrv <- hrv %>% mutate("HRVSD" = sd(lnrmssd, na.rm = T),
    "HRVRM" = rollmean(lnrmssd,7, na.pad = T, align = 'right'),
      upper_limit = round(HRVRM + 1.5 * HRVSD, 3),
             lower_limit = round(HRVRM - 1.5 * HRVSD, 3),
             lower_limit2 = round(HRVRM - .75 * HRVSD, 3))


mutate的第一个参数必须是数据集。以下参数是新的列名,不带引号,后跟 = ,然后是计算。您还需要分配它,否则包含新列的数据集将打印到屏幕上,但不会保留在环境中。

hrv <- mutate(hrv, upper_limit = round(HRVRM + 1.5 * HRVSD, 3),
                   lower_limit = round(HRVRM - 1.5 * HRVSD, 3),
                   lower_limit2 = round(HRVRM - .75 * HRVSD, 3))