定义:
dats <- list( df1 = data.frame(A=sample(1:3), B = sample(11:13)),
df2 = data.frame(AA=sample(1:3), BB = sample(11:13)))
停止
> dats
$df1
A B
1 2 12
2 3 11
3 1 13
$df2
AA BB
1 1 13
2 2 12
3 3 11
我想将所有变量名从全部大写更改为小写。我可以用一个循环来做到这一点,但不知何故无法让这个 lapply
调用工作:
dats <- lapply(dats, function(x)
names(x)<-tolower(names(x)))
结果是:
> dats
$df1
[1] "a" "b"
$df2
[1] "aa" "bb"
而期望的结果是:
> dats
$df1
a b
1 2 12
2 3 11
3 1 13
$df2
aa bb
1 1 13
2 2 12
3 3 11
最佳答案
如果您不在函数末尾使用 return
,则返回最后计算的表达式。所以你需要返回x
。
dats <- lapply(dats, function(x) {
names(x)<-tolower(names(x))
x})
关于list - 使用列表 : Rename variables 中的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6524294/