构建函数以从存储库中读取选定的数据集
Building function to read selected datasets from repository
编码新手 - 我收集了来自多个传感器的数据。
出于分析目的,我想构建一个函数,将传感器编号列表和 creates/names 变量作为数据帧。
目前我写的是:
# 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)
for 循环正在遍历 12 到 19 的选定输入,但尚未创建任何数据帧变量。
谁能告诉我哪里出了问题以及我该如何解决这个问题?
您需要适当设置环境,因为数据仅在函数中创建。
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]]
等访问每个单独的数据帧。
编码新手 - 我收集了来自多个传感器的数据。
出于分析目的,我想构建一个函数,将传感器编号列表和 creates/names 变量作为数据帧。
目前我写的是:
# 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)
for 循环正在遍历 12 到 19 的选定输入,但尚未创建任何数据帧变量。
谁能告诉我哪里出了问题以及我该如何解决这个问题?
您需要适当设置环境,因为数据仅在函数中创建。
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]]
等访问每个单独的数据帧。