【发布时间】:2014-12-15 16:31:57
【问题描述】:
我正在尝试将数据框的第一行指定为 colnames,我的数据框是动态命名的,例如“frame_1”“frame_2”等
我是这样做的:
for( i in 1:length(holder)){
colnames(eval( parse(text=paste0("frame_",i))) )<- eval( parse(text=paste0("frame_",i,"[1,]")))
}
但是这会产生神秘的错误:
target of assignment expands to non-language object
我觉得这很令人困惑,因为:
colnames(eval( parse(text=paste0("frame_",i))) )
为 frame_i 生成 colnames 向量
eval( parse(text=paste0("frame_",i,"[1,]")))
产生第一行 frame_i。
这两个是相同的长度,如果有人能向我解释这个错误,我将非常感激
一些代码可以生成与我相似的数据集:
for( i in 1:1000){
assign(paste("frame",i,sep="_"), data.frame( c("desired_colname", 4, 3, 5, 7) , c("desired_colname2", 3, 1, 2, 3) )) }
所以我想把“desired_colname”作为列名。
【问题讨论】:
-
请给我们一个可重现的例子。
-
@RichardScriven 不,事实并非如此。我将编写一些代码为您生成可重现的数据。
-
@user1987097 你试过下面的代码吗?
-
它破坏了一堆数据框,当我尝试查看它们时返回错误“视图中的错误:未定义的列选择”
-
@user1987097 不在我创建的示例中。
标签: r