【发布时间】:2016-03-23 13:13:06
【问题描述】:
第一个示例显示了一个大列表,其中包含以下元素:“3.13”“3.3”“3.47”,来自基于 VDD1 列的拆分数据帧:
>Data_Char_VDD1 <- split(Data_Char, Data_Char$VDD1)
在大列表“Data_Char_VDD1”中查找元素的名称如下所示:
>names(Data_Char_VDD1)
[1] "3.13" "3.3" "3.47"
我想在几个列表中查找名称,有时会有多少不同。假设这次是 4。
我正在尝试做这样的事情,它应该创建 4 个名为 VDD1..4 的变量,其中包含它们各自的 VDD 组合:
for(i in 1:length(Configuration$VDDlist[!is.na(Configuration$VDDlist)])){
assign(paste0("VDD",i), names(paste0("Data_Char_VDD",i)))
}
导致 4 个空变量。
调试表明,我从使用 paste0 构造名称的列表中获取名称的方法不起作用:
>i <- 2
>names(paste0("Data_Char_VDD",i))
NULL
如何以正确的数据格式构造名称,以便对函数 names() 有用?
【问题讨论】:
-
rawr,抱歉这个问题有点长,所以很容易错过重点。我的观点是,我有多达 4 个名为 Data_Char_VDD1..4 的大型列表,这些列表来自 Data_Char 的拆分,具体取决于我的数据集中有多少 VDD cols。
-
不清楚你在这里用
assign做什么。很明显,您可能不应该这样做。请给我们一个可重现的例子吗? -
name是一个特殊属性,您不指定它。您只需创建一个长度为 1 的字符向量并期望它有一个名称。x <- paste0("var", 1); names(x) <- "myname"; names(x). -
如果你没有在你的
paste0(...)上调用names,你的代码就可以正常工作。此外,请仔细考虑您是否真的想以编程方式分配变量,这通常是一个坏主意。您必须使用get访问它们,这很痛苦。 -
我的目标是为每个包含该大列表中元素列表的大列表设置一个变量。我知道 for() 语句可以判我入狱,当我能找到其他方法时,我会尽量避免它们。但这让我很快到达了我需要的地方。我的老板告诉我:“不要做艺术,让它工作和进步”;-)
标签: r