R 使用用户创建函数中的文本作为基础,从其他数据框创建数据框
我想创建一个函数,从另一个数据帧中的列创建r中的数据帧,使用创建调用时的文本作为数据帧中数据标签的基础 例如,我想使用R 使用用户创建函数中的文本作为基础,从其他数据框创建数据框,r,function,automation,R,Function,Automation,我想创建一个函数,从另一个数据帧中的列创建r中的数据帧,使用创建调用时的文本作为数据帧中数据标签的基础 例如,我想使用mtcars数据集作为基础,为mpg和am创建以下数据集 ## desired dataframe 1 # ---- NOTE: creates object mtcars_specificed_column_object_mpg <- data.frame( mpg = mtcars$mpg, variable = "mpg",
mtcars
数据集作为基础,为mpg
和am
创建以下数据集
## desired dataframe 1
# ---- NOTE: creates object
mtcars_specificed_column_object_mpg <-
data.frame(
mpg = mtcars$mpg,
variable = "mpg",
dataset = "mtcars"
)
# ---- NOTE: displays data head
head(mtcars_specificed_column_object_mpg)
mpg variable dataset
1 21.0 mpg mtcars
2 21.0 mpg mtcars
3 22.8 mpg mtcars
4 21.4 mpg mtcars
5 18.7 mpg mtcars
6 18.1 mpg mtcars
所需数据帧1
#----注意:创建对象
mtcars\u specified\u column\u object\u mpg我们可以使用
substitute
提取对象名称,并将其转换为字符串(deparse
)。另外,使用[[
而不是$
来提取列
function_create_dataset_specificed_column_object <-
function(variable_name, dataset_name) {
colnm <- deparse(substitute(variable_name))
nm1 <- deparse(substitute(dataset_name))
dataset_specificed_column_object <-
data.frame(
variable_name = dataset_name[[colnm]],
variable = colnm,
dataset = nm1
)
names(dataset_specificed_column_object)[1] <- colnm
return(dataset_specificed_column_object)
}
谢谢。我认为这应该很有效。我会自己测试一下,并在适当的时候打勾。我认为这个论点中没有任何引用是有意义的,至少现在是这样。印刷问题更像是我的打字错误。对于这些错误,我深表歉意。
## attempt to create function
function_create_dataset_specificed_column_object <-
function(variable_name, dataset_name) {
# ---- NOTE: # creates data frame of variable, with unique values
dataset_specificed_column_object <-
data.frame(
variable_name = dataset_name$variable_name,
variable = "variable_name",
dataset = "dataset_name"
)
# ---- NOTE: returns appropriate object
return(dataset_specificed_column_object)
}
### using function
function_create_dataset_specificed_column_object(mpg, mtcars)
# ---- NOTE: function does not work
# base data frame
mtcars
## list of IVs of desired data frame
mtcars_IVs_of_interest_list$IVs <- c("mpg", "am")
mtcars_IVs_of_interest_list$dataset <- c("mtcars")
## desired dataframe 1
# ---- NOTE: creates object
mtcars_specificed_column_object_mpg <-
data.frame(
mpg = mtcars$mpg,
variable = "mpg",
dataset = "mtcars"
)
# ---- NOTE: displays data head
head(mtcars_specificed_column_object_mpg)
## desired dataframe 2
# ---- NOTE: creates object
mtcars_specificed_column_object_am <-
data.frame(
mpg = mtcars$am,
variable = "am",
dataset = "mtcars"
)
# ---- NOTE: displays data head
head(mtcars_specificed_column_object_am)
## attempt to create function
function_create_dataset_specificed_column_object <-
function(variable_name, dataset_name) {
# ---- NOTE: # creates data frame of variable, with unique values
dataset_specificed_column_object <-
data.frame(
variable_name = dataset_name$variable_name,
variable = "variable_name",
dataset = "dataset_name"
)
# ---- NOTE: returns appropriate object
return(dataset_specificed_column_object)
}
### using function
function_create_dataset_specificed_column_object(mpg, mtcars)
# ---- NOTE: function does not work
function_create_dataset_specificed_column_object <-
function(variable_name, dataset_name) {
colnm <- deparse(substitute(variable_name))
nm1 <- deparse(substitute(dataset_name))
dataset_specificed_column_object <-
data.frame(
variable_name = dataset_name[[colnm]],
variable = colnm,
dataset = nm1
)
names(dataset_specificed_column_object)[1] <- colnm
return(dataset_specificed_column_object)
}
function_create_dataset_specificed_column_object(mpg, mtcars)
# mpg variable dataset
#1 21.0 mpg mtcars
#2 21.0 mpg mtcars
#3 22.8 mpg mtcars
#4 21.4 mpg mtcars
#5 18.7 mpg mtcars
#6 18.1 mpg mtcars
#7 14.3 mpg mtcars
#...