【问题标题】:R - change names of slots in listR - 更改列表中插槽的名称
【发布时间】:2015-05-28 21:53:10
【问题描述】:

有没有办法通过每个插槽中的值重命名列表中的插槽名称。例如,在这样的列表中:

x <- list(c("name1","name2"), c("name1","name3"), c("name4","name5"))
names(x) <- c("a","b","c")
x
$a
[1] "name1" "name2"

$b
[1] "name1" "name3"

$c
[1] "name4" "name5"

我想更改插槽名称以实现如下目的:

$name1;name2
[1] "name1" "name2"

$name1;name3
[1] "name1" "name3"

$name4;name5
[1] "name4" "name5"

注意:每个插槽的数量可以是可变的。

谢谢。

【问题讨论】:

  • 请注意,生成的名称不是有效的语法。这只是一个坏主意,根本没有用。

标签: r list rename


【解决方案1】:

你可以使用:

names(x) <- sapply(x,paste,collapse=";")

对于 x 的每个元素,这会将字符串粘贴在一起,然后将它们组合成一个向量。这可用于设置names(x),如您所示。

【讨论】:

  • @PedroA 请注意,您需要使用引号来访问列表中的元素,例如:x$"name1;name2"。或者您必须更改名称中的分隔符。因为在 R ";"用于分隔操作:x$name1;name2 将返回列表“x”中的元素“name1”和当前环境的对象“name2”。
猜你喜欢
  • 2021-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-29
相关资源
最近更新 更多