在迭代数据帧时创建循环的名称

道格·菲尔(Doug Fir)
mylist <- list(demographic_vars, usage_engagement_vars, billing_contracttype_vars, contract_type_vars)

mylist中的每个变量都是一个数据框。

我正在编写一个传递给lapply()的函数。我想遍历mylist并命名一个变量,如下所示:

varData <- function(x) {
    paste('cv_prediction',x,sep='') <- data.frame()
}

上面的目标是这样的(例如,对于第一次迭代)

cv_predictiondemographic_vars <- data.frame()

我怀疑我的功能与上述错误有关。

paste(“ cv_prediction”,x,sep =“”)中的错误<-data.frame():
分配目标扩展为非语言对象

如果要在函数中创建将x的当前值串联到其他字符串的变量,我该怎么做?

康拉德·鲁道夫(Konrad Rudolph)

这很棘手。通常,您可以这样编写函数:

varData = function(x) {
    name = paste0('cv_prediction', deparse(substitute(x), backtick = TRUE))
    assign(name, x, parent.frame())
}

这样调用时有效,例如:

varData(some_data_frame)

但是,它不会有一个循环变量工作,因为它将使用的名称可变的。据我所知,没有办法真正实现您想要的。相反,您需要list在上面的代码中用其他内容替换

named_list = function (...) {
    names = sapply(match.call()[-1], deparse, backtick = TRUE)
    setNames(list(...), names)
}

然后使用它:

mylist = named_list(demographic_vars, usage_engagement_vars, billing_contracttype_vars, contract_type_vars)

这将导致mylist其值由对象命名。例如:

a = 1
b = 2
named_list(a, b)
# $a
# [1] 1
#
# $b
# [1] 2

现在,您可以开始在代码中使用列表的名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在循环中创建数据帧的名称

如何避免迭代数据帧

使用 NaN 条件迭代数据帧

在不使用 for 循环的情况下迭代数据帧的列

数据帧中的迭代循环-动态创建数据字典

如何在迭代数据帧时插入一列?

Python:添加数据帧时的循环迭代

OutOfMemoryException:尝试迭代数据集时

如何基于计时器迭代数据帧?

迭代数据帧并使用基于条件的替换方法

如何迭代数据帧并插入到 mysql db

基于python中的索引迭代数据帧的行

如何在循环的每次迭代中使用for循环创建新的数据帧?

在 for 循环中创建数据库,将循环迭代器注入数据库名称

使用 for 循环和 switch case 迭代数据

迭代数据帧并将列作为新数据帧获取

如何为 R for 循环中的每次迭代创建新的数据帧?

数据帧的迭代创建和命名

当结果重置每次迭代时,是否可以将for循环的结果添加到数据帧?

Firebase Realtime Database-迭代数组时获取数据

迭代数据表时检查列是否存在?

迭代数组中的数据时出现语法错误

Python“ For”循环迭代数组

循环几个熊猫数据帧的名称

迭代数据帧时出现 ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

从数据帧列表创建数据帧名称的向量

仅迭代数据帧的一部分的方法

迭代数据帧或 pytable 中的记录的正确语法是什么?

r通过迭代数字过滤器将数据帧拆分为列表