【发布时间】:2016-12-14 01:44:49
【问题描述】:
我有一个包含 10 个 data.frame 的列表,我只需要重命名每个 data.frame 的一列。要重命名的列是 no。 7,我想我可以用 lapply 解决问题。
这是我尝试但没有成功的:
lst <- lapply(lst, function(x) colnames(x)[7] <- 'new_name')
我认为我真的很接近解决方案,但显然我错过了一些东西。 谢谢
【问题讨论】:
我有一个包含 10 个 data.frame 的列表,我只需要重命名每个 data.frame 的一列。要重命名的列是 no。 7,我想我可以用 lapply 解决问题。
这是我尝试但没有成功的:
lst <- lapply(lst, function(x) colnames(x)[7] <- 'new_name')
我认为我真的很接近解决方案,但显然我错过了一些东西。 谢谢
【问题讨论】:
你需要使用{}并返回x:
lst <- lapply(lst, function(x) {colnames(x)[7] <- 'new_name'; x})
或者
lst <- lapply(lst, function(x) {
colnames(x)[7] <- 'new_name'
x
})
作为一个可重现的示例,您可以使用
lapply(list(iris, iris), function(x) {colnames(x)[3] <- "test"; x})
【讨论】: