函数每次都覆盖同一个对象:我怎样才能避免这种情况?

阿德里安·克瑞亚克

我想为我所做的每个回归创建一个对象(其中 17 个)。理想情况下,该函数应该创建 17 个不同的对象,我可以在之后使用。目前它只是在前一个对象之上写一个对象。我怎样才能避免这种情况?如果对象部分以特定的“文件名”命名,那么最好能够在之后区分它们。

  dat <- read.csv(file = filename)
  reg2<<- lm(dat[,17]~dat[,6]+dat[,7])
  }

for (f in filenames) {
    upload(f)
}
格雷戈尔·托马斯

这是<<-函数内部全局赋值的最大问题之一让您的功能return()成为模型,而不是分配,并在功能之外进行分配

# function returns the result, doesn't assign it
upload <- function(filename) {
  dat <- read.csv(file = filename)
  lm(dat[,17]~dat[,6]+dat[,7])
}

# assignment happens outside the function (like almost every other R function)
# this way you can use whatever name you want
reg2 <- upload("hello.csv")
reg3 <- upload("world.csv")

# or use a for loop
reg <- list()
for (f in filenames) {
  reg[[f]] <- upload(f)
}

# or use lapply for the same effect more concisely
reg <- lapply(filenames, upload)
names(reg) = filenames)

# You can now access individual list elements with [[
summary(reg[["hello.csv"]])

# Or extract all the model summary stats into a nice data frame
dplyr::bind_rows(lapply(reg, broom::glance))

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我怎样才能通过同一个班级的班级名称获取所有元素?

我怎样才能写一个指向函数?

我怎样才能改变这种状况不选择一个JList项的背景颜色?

我怎样才能让你每次回答一个问题时不断重复?

一个类对象变成了一个字符串。我怎样才能扭转这种局面?

我怎样才能避免在这种情况下强制解除变形?

我怎样才能把这个静态函数变成一个允许参数的函数?

我怎样才能@Input一个复杂的对象到我的AngularDart组件中?

我怎样才能从2个函数中创建一个?

我怎样才能让一个函数等到代码前一行完成

我怎样才能插入一个列表的元素融入在同一顺序另一个列表?

我怎样才能返回一个循环?

我怎样才能重复一个模式?

我怎样才能返回一个 Promise?

我怎样才能删除£从一个数组对象符号和保存呢?

我怎样才能制作一个 JSON 对象,输出会是这样的?

我怎样才能在 R 中滞后一个 ts 对象?

我怎样才能提供一个数组作为函数或脚本的位置参数?

我怎样才能替代一个函数来使查询更快?

我怎样才能把这个 foreach push 循环变成一个 reducer 函数?

我怎样才能使一个类装饰器不中断isinstance函数?

我怎样才能创建一个同时接受 Num 和 Maybe Num 的函数?

我怎样才能把这个 Python 代码变成一个函数?

我只是在 Git 上为同一个远程仓库添加了两个别名。我怎样才能删除其中之一?这是我的代码

我怎样才能聚合计数函数返回一个数字而不是一个数组

将链接重定向到我网站上的随机页面的 php 函数只能工作一次。我怎样才能让它每次都工作?

怎样让Iterator被同一个对象呢?

我怎样才能使一个包含若干个相同对象的构造函数,但如果其空忽略它?

按钮的onclick在HTML功能保持复位表单输入字段的默认值。我怎样才能避免这种情况?