Построение функции для чтения выбранных наборов данных из хранилища - PullRequest
0 голосов
/ 28 марта 2020

Новое в кодировании - у меня есть набор данных от нескольких датчиков.

Для целей анализа я хотел создать функцию, которая получает список номеров датчиков и создает / называет переменные в виде фреймов данных.

В настоящее время я написал:

    # establish directory
    setwd("C:/Users/thoma/Desktop/Files/Programming/R/timeseries_sensor_data/")

    # define function
    read_censor_data <- function(id = 1:99){
            for(i in id){

                    # create a variable name for every sensor || read csv
                    assign(paste0("sensor_",i),read.csv(paste0(i,'.csv')))
                    print(paste0("Sensor_",i," has been succesfully read."))
            }
    }
    read_censor_data(12:19)

Значение для l oop проходит через выбранные входные данные от 12 до 19, но переменные данных не созданы.

Кто-нибудь может подсказать, где я ошибаюсь и как я могу это исправить?

1 Ответ

1 голос
/ 28 марта 2020

Необходимо правильно настроить среду, поскольку данные создаются только в функции.

read_censor_data <- function(id = 1:99){
   for(i in id){
    assign(paste0("sensor_",i),read.csv(paste0(i,'.csv')), envir = parent.frame())
    print(paste0("Sensor_",i," has been succesfully read."))
  }
}

read_censor_data(12:19)

Однако обычно не рекомендуется создавать множество фреймов данных в глобальной среде из функции. Попробуйте использовать списки, которыми проще управлять.

read_censor_data <- function(id = 1:99){
   lapply(paste0("sensor_", id), read.csv)
}

list_df <- read_censor_data(12:19)

Затем вы можете получить доступ к каждому отдельному кадру данных с помощью list_df[[1]], list_df[[2]] et c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...