簡體   English   中英

如何將數據幀作為參數傳遞給 function?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM