簡體   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