簡體   English   中英

如何創建一個 function 將不同的類別添加到 R 中的 tidyverse 表中

[英]How to create a function that adds different categories to a table with tidyverse in R

我正在創造很多小玩意。 然而,因為這是可重復的,我正在嘗試創建一個 function 來簡化我的工作。 需要在 R 中使用 tidyverse 庫創建此 function。 這是創建的 function:

cfg_write <- function(given = c(1:2), 
                              common = c(1:2), 
                              table = name_of_a_table, 
                              path = "path/to/save"){

        table <- tibble::tibble(given = c(1:2),
                                common = c(1:2))
        table 

        saveRDS(table, file = path)

    }

請記住,在 function 中的給定和通用參數中,我想傳遞超過 2 個字符串,有時我可以達到 18 個級別,而不是在“給定”和“通用”中設置的 2 個級別。

使用 function 創建的兩件事我沒有得到:

  1. 我希望當我傳入給定和公共參數時,我會得到額外的行。 這些是給定變量的類別。
  2. 其次,當我嘗試創建幾個小標題時,我得到一個有兩列的小標題,這很好,而且每一列都有一個數字,1 和 2,這不是我所期望的。

這就是我所做的,更具體地說:

test <- cfg_write(given = c('Adrian', "Mary", "Neil"), 
                   common = c("name1", "name2", "name3"), 
                   table = test, path = "/users/bg/test.rds")

但是,我明白了:

dput(test)
structure(list(given = 1:2, common = 1:2), row.names = c(NA,-2L), class = c("tbl_df", "tbl", "data.frame"))

有人可以幫忙嗎?

您尚未將參數名稱傳遞到 function 主體中。 由於您尚未在 function 主體中使用這些 arguments,因此在使用 ZC1C425268E173985D1AB5074 時提供的任何新 arguments 將被忽略。 table 參數也已過時,因為 tibble 的名稱將是您分配 function 調用的任何名稱,在本例中為test 也許這會使事情朝着正確的方向發展? 注意我已經更改了文件路徑

cfg_write <- function(given = c(1:2), 
                              common = c(1:2),
                              path = "path/to/save"){

        table <- tibble::tibble(given = given,
                                common = common)

        saveRDS(table, file = path)

    }

test <- cfg_write(given = c('Adrian', "Mary", "Neil"), 
                  common = c("name1", "name2", "name3"), 
                  table = test, path = "Desktop/test.rds")
readRDS("Desktop/test.rds")

  provided standard
  <chr>    <chr>   
1 Adrian   name1   
2 Mary     name2   
3 Neil     name3 


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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