如何为R语言中的list对象元素批量命名为DF.1、DF.2格式?
问题解决:给列表元素批量命名为DF.n
你现在的问题是想给my.list里的每个元素按顺序命名为DF.1、DF.2……DF.n,但原来的for循环写法完全错了——你把列表里的data.frame都替换成了字符串,根本没在设置名称。
先看你原来的错误点:
for(i in 1:length(my.list)){ my.list[[i]] <- paste("DF", i, sep = ".") # 这里直接把data.frame替换成了字符串,完全偏离需求 # 注释里的写法也没必要在循环里重复执行 }
正确解法1:直接生成名称赋值(最简单)
不需要循环,一行代码就能搞定:
names(my.list) <- paste0("DF.", seq_along(my.list))
执行后调用names(my.list),就能得到"DF.1" "DF.2" "DF.3"。
正确解法2:用setNames函数
直接生成带指定名称的新列表,同样一行代码:
my.list <- setNames(my.list, paste0("DF.", seq_along(my.list)))
如果一定要用for循环(不推荐,没必要)
要是非要用循环实现,应该直接给names(my.list)[i]赋值,而非修改列表元素本身:
for(i in 1:length(my.list)){ names(my.list)[i] <- paste0("DF.", i) }
测试验证:执行完上面任意一种方法后,运行names(my.list),输出就是你要的结果:
> names(my.list) [1] "DF.1" "DF.2" "DF.3"
内容的提问来源于stack exchange,提问作者symkly
相关产品推荐
相关产品推荐

