![](/img/trans.png)
[英]How do I pass a data frame to a function, and return a new data frame with the columns rearranged?
[英]How do I pass a data frame as an argument to a function?
T12 是一個有 22 列的數據框(但我只想要第 2 列到第 8 列)和大約一百萬個條目。 第一欄中的一些條目是不適用的。 每次第一列有 NA 時,完整的案例都會刪除完整的行。 一切正常。
我有更多的數據幀,我不想為每個數據幀再次編寫整個代碼。
我想要這樣的東西 function 並想把 x T12、T13、T14、T15 等。
你能幫幫我嗎?
split <- function (x){
x <- x[,2:8]
x <- x[complete.cases(x[ ,1]),]
}
如果您有名為"T12"
、 "T13"
等的數據幀,則可以使用模式"T"
后跟一個數字來使用ls
在字符向量中捕獲所有此類數據幀。
使用mget
您可以從命名列表中的那些字符向量中獲取數據幀。
然后,您可以使用lapply
在每個列表上應用split
function。
new_data <- lapply(mget(ls(pattern = 'T\\d+')), split)
new_data
具有數據框列表。 如果您希望這些更改反映在原始 dataframe 中,請使用list2env
。
list2env(new_data, .GlobalEnv)
PS - split
是 R 中的默認 function,因此最好為您的 function 提供一些不同的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.