Обращаясь к той же таблице, работая в R - PullRequest
2 голосов
/ 19 марта 2019

В настоящее время я работаю над фреймом данных, требующим внесения некоторых изменений во многие столбцы. Мой код выглядит примерно так:

Table_A$Field_A <- "10"
Table_A$Field_B <- "20"
Table_A$Field_C <- "30"
Table_A$Field_D <- "20"
Table_A$Field_E <- "20"

Видно, что это повторяется. Я думаю, что должна быть функция или пакет, который я могу использовать, чтобы не вводить Table_A$Field_X каждый раз, когда я работаю над разными столбцами в одном и том же фрейме данных.

Я попытался выполнить поиск, но не смог найти правильное ключевое слово, чтобы найти решение. Весь ответ приветствуется. Спасибо.

1 Ответ

1 голос
/ 19 марта 2019

Перед использованием внешних пакетов посмотрите функцию base::within.Функция позволяет вам указать ваш фрейм данных в качестве аргумента data и провести модификацию переменных, используя аргумент expr, который принимает выражение.

TableA <-
    as.data.frame(sapply(
        X = paste("Field", LETTERS[1:5], sep = "_"),
        FUN = function(x) {
            3
        }, simplify = FALSE
    ))

within(data = TableA,
       expr = {
           Field_A = 1e3
           Field_B = -10
       }) -> TableA

Примечания к комментариям

Обратите внимание, что синтаксис для transform отличается.Для достижения предоставленного решения с использованием transform вы должны сделать:

transform(TableA,
          Field_A = 1e3,
          Field_B = -10) -> Table_res_transform

Это будет эквивалентно:

within(data = TableA,
       expr = {
           Field_A = 1e3
           Field_B = -10
       }) -> Table_res_within

identical(Table_res_transform, Table_res_within)
# [1] TRUE

dplyr

require(dplyr)
TableA %>%
    mutate(Field_A = 1e3,
           Field_B = -10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...