library(tidyverse)
df <- tibble(col1 = c(5, 2), col2 = c(6, 4), col3 = c(9, 9))
df %>% rowwise() %>% mutate(col4 = sd(c(col1, col3)))
# # A tibble: 2 x 4
# col1 col2 col3 col4
# <dbl> <dbl> <dbl> <dbl>
# 1 5 6 9 2.83
# 2 2 4 9 4.95
Задав ряд вопросов, я наконец могу вычислить стандартное отклонение по строкам. Смотрите мой код выше.
Но я не могу использовать имена столбцов в своем рабочем коде, потому что база данных, из которой я извлекаю данные, периодически меняет имена столбцов. К счастью для меня, относительные позиции столбцов всегда одинаковы.
Так что я просто буду использовать номера столбцов. И давайте проверим, чтобы убедиться, что я могу просто поменять местами:
identical(df$col1, df[[1]])
# [1] TRUE
Да, я могу просто поменять df[[1]]
вместо df$col1
. Я думаю, что делаю это так.
df %>% rowwise() %>% mutate(col4 = sd(c(.[[1]], .[[3]])))
# # A tibble: 2 x 4
# col1 col2 col3 col4
# <dbl> <dbl> <dbl> <dbl>
# 1 5 6 9 3.40
# 2 2 4 9 3.40
df %>% rowwise() %>% {mutate(col4 = sd(c(.[[1]], .[[3]])))}
# Error in mutate_(.data, .dots = compat_as_lazy_dots(...)) :
# argument ".data" is missing, with no default
Нет, похоже, они не работают, потому что результаты отличаются от моего оригинала. И я не могу использовать применить, если вам действительно нужно знать, почему Я сделал отдельный вопрос .
df %>% mutate(col4 = apply(.[, c(1, 3)], 1, sd))
Как применить dplyr rowwise()
с номерами столбцов вместо имен?