【问题标题】:R data.table to vector using variable name as data.table name?R data.table 使用变量名作为 data.table 名称的向量?
【发布时间】:2021-05-05 17:30:58
【问题描述】:

我想使用一个变量作为 df 名称,但不知道如何使用。 我可以这样做

 'vector2 <- df$columname'

如果我想循环查看不同的数据表,我无法做到。 vector1 是我想将列数据放入vector2 的data.tables 的名称。

我希望循环这样做

 'vector2 <- one$columname'
 'vector2 <- two$columname'
 'vector2 <- three$columname'

每次通过循环时更改 data.table 名称,保持列名相同。

'vector1<- c("one","two","three")
for(i in vector1) {
vector2 <- vector1$columname
}'

【问题讨论】:

    标签: r datatable


    【解决方案1】:

    根据 OP 帖子中的更新,使用 mget(将所有对象的值返回到命名列表中)或 get(对于单个元素 - 可以在 for 循环中使用)返回数据集名称的值,即“一”、“二”、“三”

    lst1 <- lapply(mget(vector1), function(x) x$columname)
    

    如果它应该是单个向量

    vector2 <- unlist(lst1)
    

    for 循环中,可以这样做

    for(i in vector1) vector2 <- get(i)$columname
    

    这会在每次迭代中替换“vector2”并获取最后一个列名,即来自“three”。如果我们需要创建单个向量

    vector2 <- c()
    for(i in vector1) vector2 <- c(vector2, get(i)$columname)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-24
      • 2020-08-25
      • 2021-09-29
      • 2021-10-26
      • 2016-03-30
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多