【问题标题】:R identifying first value in data-frame and creating new variable by adding/subtracting this from all values in data-frame in new columnR识别数据框中的第一个值并通过从新列的数据框中的所有值中添加/减去该值来创建新变量
【发布时间】:2018-09-04 14:35:54
【问题描述】:

我知道这个问题可能已经在其他地方得到了回答,如果重复了,我很抱歉,但我还没有找到可行的答案。

我有 17 个科目,每个科目都有两个变量,如下所示:

Time (s)    OD
130        41.48
130.5      41.41
131        39.6
131.5      39.18
132        39.41
132.5      37.91
133        37.95
133.5      37.15
134        35.5
134.5      36.01
135        35.01

我希望 R 识别我的数据框的第 2 列 (OD) 中的第一个值,并通过从第 2 列,所以它看起来像这样:

    Time (s)    OD      OD_adjusted 
130            41.48     0
130.5          41.41    -0.07
131            39.6     -1.88
131.5          39.18    -2.3
132            39.41    -2.07
132.5          37.91    -3.57
133            37.95    -3.53
133.5          37.15    -4.33
134            35.5     -5.98
134.5          36.01    -5.47
135            35.01    -6.47

第 2 列中的第一个值为 41.48,因此我想从第 2 列中的所有数据点中减去该值以创建新的第三列 (OD_adjusted)。

我可以使用OD_adjusted <- ((df$OD) - 41.48) 但是,我想使用一个函数来自动化这个过程,这就是我卡住的地方:

AUC_OD <- function(df){

return_value_1 = df %>%
  arrange(OD) %>%
  filter(OD [1,2) %>%
  slice_(1)
colnames(return_value_1)[3] <- "OD_adjusted"


if (nrow(return_value_1) > 0 ) { subtract 
   (return_value_1 [1,2] #into new row

     else add
     (return_value_1 [1,2] #into new row

}

【问题讨论】:

    标签: r add identity subtraction


    【解决方案1】:

    我们得到'OD'的第一个元素并从列中减去

    library(dplyr)
    df1 %>%
       mutate(OD_adjusted = OD- OD[1])
    

    或使用base R

    df1$OD_adjusted <- with(df1, OD - OD[1])
    

    【讨论】:

      猜你喜欢
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多