【问题标题】:How to pass an R function argument to select rows from a df如何传递 R 函数参数以从 df 中选择行
【发布时间】:2014-09-08 16:32:34
【问题描述】:

我正在尝试编写一个函数,允许我在我的 df 的“x”列中指定一个或多个值,以便我的结果只包含具有这些 x 值的行。我计划稍后在函数中添加其他参数,但这是第一步。

x<-c(1:100)
y<-rnorm(100)
df<-as.data.frame(cbind(x,y))
myfunc<-function(x=1:100){
result<-subset(df,select=x)
result
}

当我运行以下代码获取 4 行 df 时,结果是 100 行且只有 x 列:

> myfunc(x==3:6)
      x
1     1
2     2
3     3
4     4
5     5
....
99   99
100 100

myfunc(x=3:6) 和 myfunc(3:6) 也不起作用

【问题讨论】:

    标签: r function subset


    【解决方案1】:

    我会像这样编辑你的函数:

    myfunc <- function(z = 1:100){
      result <- subset(df, x %in% z)
      result
    }
    
    myfunc(z = 3:6)
    #   x          y
    # 3 3  0.7585295
    # 4 4 -0.2713343
    # 5 5  0.5359432
    # 6 6 -0.4653105
    

    【讨论】:

    • 具有相同名称的列和函数参数 (x) 会导致灾难,因此我选择了 z 来区分它们。
    猜你喜欢
    • 2019-01-15
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 2023-02-24
    • 2023-01-22
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    相关资源
    最近更新 更多