【问题标题】:How to add data frames to a list and name them from a user written function如何将数据框添加到列表并从用户编写的函数中命名它们
【发布时间】:2020-09-02 17:40:00
【问题描述】:

我想我可以在不解释我为什么这样做的细节的情况下问这个问题,让我们试试: 我正在编写一个函数,它所做的部分工作是创建一个名为x 的数据框。我有一个列表,我想将此数据框存储在名为Subsets 中。我可以使用以下代码获得将x 放置在subsets 中的功能:

Subsets <- append(Subsets, list(x))#adds x to Subsets

这很好,但是有列表Subsets的目的是存储多个数据帧(即该函数将用于多个xs,每个x的这个数据帧将整齐存储在列表对象Subsets)。自然,每次我将这个数据框用于不同的x 时,我都想为其命名。我想使用的命名约定可以从数据框x 中的信息中提取。我想粘贴x[1,1]x[1,6] 中的值(它们是表示每个x 的唯一位置和ID 的列),并使用它来命名存储在Subsets 列表中的数据框。 我可以(在函数外部)使用我想要的名称从 x 创建一个新的数据框,使用 assign(paste0(x[1,1],x[1,6]),x) 但是当我尝试将这些组合起来以使其成为列表中数据框的名称时,我无法让它工作:

#the word in x[1,1] is NY and the word in x[1,6] is 1 
#so the name of the object within the list is supposed to become NY1
Subsets <- append(Subsets, list(assign(paste0(x[1,1],x[1,6]),x),)

我做错了什么?

【问题讨论】:

  • 我认为您需要创建一个可重现的示例

标签: r list function dataframe functional-programming


【解决方案1】:

您需要使用根据paste0(x[1,1],x[1,6]) 命名的元素创建一个列表。 assign 所做的是创建一个具有该名称的对象。 这段代码应该做你想做的:

newlist <- list(x)
names(newlist) <- paste0(x[1,1],x[1,6])
Subsets <- c(Subsets, newlist)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-28
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    相关资源
    最近更新 更多