【发布时间】:2026-02-23 03:50:01
【问题描述】:
我正在尝试使用 function() 创建一个数据框。
情况:我有以下包含信息的数据框:代码、子代码和描述。每个代码代表一个行业,子代码代表一个特定行业。
> head(industries.split)
Code Subcode Description
1 13 00 AEROSPACE
2 13 10 Engines, Components & Parts Manufacturers
3 13 20 Military & Commercial Aircraft Manufacturers
4 13 30 Missile & Missile Parts Manufacturers
5 13 40 Private & Business Aircraft Manufacturers
6 13 50 Miscellaneous Aerospace
> tail(industries.split)
Code Subcode Description
198 85 91 Wholesalers
199 85 92 Miscellaneous Companies
200 86 00 REUTERS FUNDAMENTALS-SOURCED DATA
201 86 10 Industrial/Commercial format; Industry group NA
202 86 20 Utilities; Industry group NA
203 86 30 Bank format; Industry group NA
我想将代码与子代码结合起来,然后排除子代码。 为此,我编写了以下函数,其中 name 是行业的占位符,code 是行业代码。
Industry.Filter <- function(name, code){
name <- industries.split %>%
filter(Code == code)
name[,1] <- paste(name[,1], name[,2],sep = "")
name <- name[,-2]
}
代码有效,但它不会将值存储在数据框中。
仅当我将其单独存储在数据框中时才有效:
aerospace <- Industry.Filter(aerospace, 13)
如何在函数前面没有 aerospace <- 的情况下使用此函数。
【问题讨论】:
-
有办法做到这一点,但不推荐。做
aerospace <- Industry.Filter(aerospace, 13)有什么问题? -
没有直接问题。我只是想弄清楚,是否有办法将存储过程包含到函数中以节省一些时间。
-
这不会为您节省时间。如果您尝试实现将变量写入调用环境,从长远来看,这将花费您的时间。相信我们,除非您真的知道自己在做什么,否则您应该避免这种情况。如果您想了解有关如何完成的更多信息,请查看 R 中的
?assign -
@AllanCameron 这是否可能只是一个关于编写 OP 可以在管道中使用的函数的困惑问题?如果不是,那么我 100% 同意你的看法。