Say I have the following data:
colA <- c(\"SampA\", \"SampB\", \"SampC\")
colB <- c(21, 20, 30)
colC <- c(15, 14, 12)
colD <- c(10, 22, 18)
df &l
You can use pmap, or rowwise (or group by colA) along with mutate :
library(tidyverse)
df %>% mutate(sd = pmap(.[-1], ~sd(c(...)))) # same as transform(df, sd = apply(df[-1],1,sd))
#> colA colB colC colD sd
#> 1 SampA 21 15 10 5.507571
#> 2 SampB 20 14 22 4.163332
#> 3 SampC 30 12 18 9.165151
df %>% rowwise() %>% mutate(sd = sd(c(colB,colC,colD)))
#> Source: local data frame [3 x 5]
#> Groups:
#>
#> # A tibble: 3 x 5
#> colA colB colC colD sd
#>
#> 1 SampA 21 15 10 5.51
#> 2 SampB 20 14 22 4.16
#> 3 SampC 30 12 18 9.17
df %>% group_by(colA) %>% mutate(sd = sd(c(colB,colC,colD)))
#> # A tibble: 3 x 5
#> # Groups: colA [3]
#> colA colB colC colD sd
#>
#> 1 SampA 21 15 10 5.51
#> 2 SampB 20 14 22 4.16
#> 3 SampC 30 12 18 9.17