【问题标题】:How to create a text line with all entries of a list? in R如何创建包含列表所有条目的文本行?在 R 中
【发布时间】:2015-01-15 17:50:05
【问题描述】:

我有一个可以有任意长度的列表(每个元素的内容并不重要):

list<- as.list(rep(NA,sample(1:10,1)))

我想在 R 中创建一个文本行,如下所示:

list[[1]],list[[2]],......,list[[n]]

“n”是列表的元素数。

所以,如果它有 4 个我想在控制台中看到的元素,如下所示:

list[[1]],list[[2]],list[[3]],list[[4]]

所以,如果它有 2 个元素,我想要这样的东西:

list[[1]],list[[2]]

有什么想法吗?

非常感谢您。

蒂娜

【问题讨论】:

  • 只是好奇,你为什么想要那个输出?
  • 那么我有一个问题,因为我真的不知道如何更好地解释它:(。我需要这个来将它传递给另一个函数,它只接受这种方式的参数。跨度>
  • 你将它传递给什么函数?如果它是自定义的,那么您可能需要重新考虑 那个 功能
  • akrun,通过这种方式,您建议我获取每个元素的内容,但我希望文本完全符合问题中指定的内容。
  • 确实,如果没有办法做到这一点,我将不得不重新考虑这个功能......

标签: r list text


【解决方案1】:

这将提供所需的字符串,并且可以很容易地制成一个函数:

> paste( sprintf("list[[%i]]", 1:4) , collapse=",")
[1] "list[[1]],list[[2]],list[[3]],list[[4]]"

> lisfun <- function (lst) paste( sprintf("list[[%i]]", 1:length(lst)) , collapse=",")
> 
> list1<- as.list(rep(NA,sample(1:10,1)))
> lisfun(list1)
[1] "list[[1]],list[[2]],list[[3]],list[[4]],list[[5]],list[[6]],list[[7]]"

【讨论】:

    【解决方案2】:

    你可以试试

    paste0("c(", paste("list[[",seq_along(list),"]]", 
                           sep='', collapse=", "), ")")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-08
      • 2018-04-17
      • 1970-01-01
      • 2014-09-11
      • 1970-01-01
      • 2015-10-07
      • 1970-01-01
      相关资源
      最近更新 更多