我有一个清单:
alist <- list(x = c(1, 2, 3),
y = c(4, 5, 6))
> alist
$x
[1] 1 2 3
$y
[1] 4 5 6
Run Code Online (Sandbox Code Playgroud)
我想为每个列表组件命名,使其成为:
> alist
$x
t1 t2 t3
1 2 3
$y
t1 t2 t3
4 5 6
Run Code Online (Sandbox Code Playgroud)
我尝试使用lapply():
lapply(alist, function(x) names(x) <- c("t1","t2","t3"))
Run Code Online (Sandbox Code Playgroud)
但输出是:
$x
[1] "t1" "t2" "t3"
$y
[1] "t1" "t2" "t3"
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?我如何在这里正确使用 lapply?因为我有一个相当大的清单。
一种选择可能是:
lapply(alist, setNames, c("t1","t2","t3"))
$x
t1 t2 t3
1 2 3
$y
t1 t2 t3
4 5 6
Run Code Online (Sandbox Code Playgroud)
代码没有错,只是return应该是原始数据
lapply(alist, function(x) {
names(x) <- c("t1","t2","t3");
x})
Run Code Online (Sandbox Code Playgroud)