r - 如何使用 R 中的 tidyverse 创建一个将不同类别添加到表中的函数
问题描述
我正在创造很多小玩意。然而,因为这是可重复的,所以我正在尝试创建一个可以简化我的工作的函数。有必要在 R 中使用 tidyverse 库创建此函数。这是创建的函数:
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)
}
请记住,在函数中的给定和通用参数中,我想传递超过 2 个字符串,有时我可以达到 18 个级别,而不是在“给定”和“通用”中设置的 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"))
有人可以帮忙吗?
解决方案
您尚未将参数名称传递到函数体中。由于您没有在函数体中使用这些参数,因此在使用函数时提供的任何新参数都将被忽略。table 参数也已过时,因为 tibble 的名称将是您分配函数调用的任何名称,在这种情况下为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
推荐阅读
- swift - 如何在 Swift 中将大量结构嵌入到程序中
- reactjs - 将图片数据传递到组件React中,我丢失了一半的图片数据
- javascript - PayPal Smart Buttons 服务器端集成在实时模式下失败
- python - 组合框正在成为焦点
- python - 带有正则表达式函数的条件语句的语法
- pine-script - 在 Pine Script 中将数据限制在最后 2 个时间范围内
- azure-active-directory - 查找 Azure Active Directory 的设置日期
- python - 字符串数组坐标到python中的整数数组
- r - 如何折叠 R 中的存在/不存在数据行?
- javascript - 尝试在 Python Jupyter 中使用 .difference() 函数时出错