繁体   English   中英

使用 lapply 为数据框列表设置列名?

[英]Using lapply to set column names for a list of data frames?

我对 R 很陌生,但我正在尝试创建一个数据帧列表,然后在循环中为它们提供所有相同的标题。 计划是用一堆杂乱的数据文件中的数据填充列,然后将小数据帧绑定到一个数据帧。 但是,我坚持分配列名。 我确实首先尝试了一个 for 循环,但看到其他答案说这是新手的做法。

这就是我现在所拥有的,但是当我运行它时,列不会更新:

a <- data.frame(matrix(ncol=5, nrow=1))
b <- data.frame(matrix(ncol=5, nrow=1))
c <- data.frame(matrix(ncol=5, nrow=1))
d <- data.frame(matrix(ncol=5, nrow=1))

List <- list(a, b, c, d)
headers <- c("First Name","Last Name","Date","Zip Code", "blah")

lapply(List, setNames, nm = headers)

我想我遗漏了一些关于如何在 R 中更新数据帧的信息,因为我确实打印出了 4 个具有正确列名的空数据帧。 所以 function 适用于某事。 但它没有更新我的列表,我不明白为什么。

谢谢!

我们可以使用设置列名,

List = lapply(List, function(x) `colnames<-`(x, headers))

您似乎想更新原始数据框。 在这种情况下,您的列表必须命名。 即检查下面的代码。

List <- list(a = a, b = b, c = c, d = d)
list2env(lapply(List, setNames, nm = headers), globalenv())

现在,如果您调用a ,您会注意到它已更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM