r - 将元素追加到 R 函数中的列表

标签 r list append

我是 R 新手,正在尝试编写一个函数来将元素添加到列表中。

下面是函数 varNames 的代码。我可以使用 varNames("name1") 调用它,但 "name1" 不会添加到 "listNames" (这仍然是一个空的列表)。

我一直在尝试一些事情,并寻找答案很长时间,但没有成功。

还尝试了lappend,但没有成功。

listNames<-list()

varNames<- function(name){

  listNames <- c(listNames, name)

}

最佳答案

R 是一种函数式语言,这通常意味着您将对象传递给函数,然后这些函数返回一些对象,您可以按照自己的意愿进行操作。因此,您的预期结果是这样的函数:

varNames <- function(existinglist, itemtoadd){
    returnvalue <- c(existinglist, itemtoadd)
    return(returnvalue)
}

listNames <- list()
a <- 'a'
varNames(existinglist = listNames, itemtoadd = a)

如果您想更换原来的listNames带有函数返回值的对象,然后您需要将其分配给原始对象的名称:

listNames
listNames <- varNames(existinglist = listNames, itemtoadd = a)
listNames

您最初编写代码的方式是 R 新手中的常见错误。您试图创建所谓的“副作用”。也就是你要修改你原来的listNames不使用 <- 就位的对象任务。这通常被认为是不好的做法,并且 R 中产生此类副作用的函数相对较少。

为了更好地理解这一点,您可能会发现 the R Introduction on scopeon assignment within functions有帮助,以及Circle 6 of R Inferno .

关于r - 将元素追加到 R 函数中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23278303/

相关文章:

python - 使用 pandas 追加、连接、连接或合并两个数据框

javafx - 将文本 append 到 TextArea 时出现问题 (JavaFX 8)

r - 如何计算 R 表中每一行的唯一值?

r - 拆分data.table,然后通过引用修改

ios - 在 iOS 中获取项目中的图像列表?

python - 在 Python 中扩展列表列表?

r - 将整数列转换为 double

r - 以编程方式在 Markdown 中创建选项卡和绘图

android - 选项卡主机列表适配器和列表

javascript - 有没有办法切换 .append() jQuery 方法?