Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 什么';在多个数据帧上执行相同操作的最有效方法是什么?_R_Dataframe - Fatal编程技术网

R 什么';在多个数据帧上执行相同操作的最有效方法是什么?

R 什么';在多个数据帧上执行相同操作的最有效方法是什么?,r,dataframe,R,Dataframe,很抱歉,如果这是重复的,我在任何地方都找不到 假设我有一堆数据帧,我想把它们的所有列名都转换成小写。最有效的方法是什么?assign和get很简单,但我想知道是否有更快的方法 如果我刚刚得到了ChickWeight和mtcars,那么非动态操作就是 names( ChickWeight ) <- tolower( names( ChickWeight ) ) names( mtcars ) <- tolower( names( mtcars ) ) names(ChickWeigh

很抱歉,如果这是重复的,我在任何地方都找不到

假设我有一堆数据帧,我想把它们的所有列名都转换成小写。最有效的方法是什么?
assign
get
很简单,但我想知道是否有更快的方法

如果我刚刚得到了
ChickWeight
mtcars
,那么非动态操作就是

names( ChickWeight ) <- tolower( names( ChickWeight ) )
names( mtcars ) <- tolower( names( mtcars ) )

names(ChickWeight)我认为你不太可能通过改变方法来提高速度。一种更为惯用的方法是将所有数据帧存储在一个列表中,并使用`

dlist <- list(mtcars,ChickWeight)

我想强调的是,这并不一定比原始帖子中介绍的简单方法更快或更透明。

谢谢ben。。关于将
dlist
的各个组件作为自己的对象返回内存的最快方法,有什么建议吗?感谢您的编辑,本:)不幸的是,我同意这并不比
for
循环好多少。老鼠我很好奇你在做什么这类家务活的速度很重要。。。如果您有非常大的对象,在环境之间复制需要很长时间,您可能需要认真考虑使用我建议的列表…抱歉,我不是很关心速度。。我只是觉得有一种更像你说的惯用的方法
对于
获取
分配
始终按我的“也许有更好的方法”警铃;)
dlist <- list(mtcars,ChickWeight)
namevec <- c("mtcars","ChickWeight")
dlist <- lapply(namevec,get)
dlist <- lapply(dlist,function(x) setNames(x,tolower(names(x))))
invisible(mapply(assign,namevec,dlist,MoreArgs=list(envir=.GlobalEnv)))