无法在 R 中的嵌套函数中使用变量

用户3419965

我一直在编写一个函数,它必须在基于几列分组后从特定列中找到唯一值。

假设我有以下示例数据

head(Adult_data[,c(2,10,1)],20)
               workclass     sex age
    1          State-gov    Male  39
    2   Self-emp-not-inc    Male  50
    3            Private    Male  38
    4            Private    Male  53
    5            Private  Female  28
    6            Private  Female  37
    7            Private  Female  49
    8   Self-emp-not-inc    Male  52
    9            Private  Female  31
    10           Private    Male  42
    11           Private    Male  37
    12         State-gov    Male  30
    13           Private  Female  23
    14           Private    Male  32
    15           Private    Male  40
    16           Private    Male  34
    17  Self-emp-not-inc    Male  25
    18           Private    Male  32
    19           Private    Male  38
    20  Self-emp-not-inc  Female  43
> 

我想计算唯一“年龄”值的数量,所以我写了一个函数来分组并使用 ddply 来查找我函数中的唯一值..像这样,

  U=function(File_name,W,S,A) {
  File_name=read.csv("Adult_data_Set.csv")

  Out1=File_name[[W]]
  Out2=File_name[[S]]
  Out3=File_name[[A]]

  library(plyr); library(dplyr)
A=ddply(File_name,~File_name[[W]]+File_name[[S]],summarize,new=length(unique(File_name[[A]])))
  print(A)


}

U(Adult_data_Set.csv,"workclass","sex","age")

它抛出如下错误

U(Adult_data_Set.csv,"workclass","sex","age")

Error in eval(expr, envir, enclos) : object 'File_name' not found

我什至在函数内部尝试过这样而不是 ddply 但没有给出预期的结果

library(dplyr)
UNQ=as.data.frame(File_name %>%
  group_by(File_name[[W]],File_name[[S]]) %>%
  summarise(n_distinct(File_name[[A]])))

print(UNQ)

但是当我们对函数中的值进行硬编码时,它工作得很好..

请您帮我看看如何将函数内部的变量作为参数传递。谢谢你的时间。

埃文·弗里德兰

列宁,

以下代码对我有用:

U <- function(File_name, W, S, A){
  File <- read.csv(File_name, header = TRUE)
  Out1 <- File[[W]]
  Out2 <- File[[S]]
  Out3 <- File[[A]]
  sapply(split(File, list(Out1, Out2)), function(x) length(unique(x[[A]])))
}
U("testing.csv", "workclass", "sex", "age")

有几点需要注意。我不会将具有 File 数据的对象称为与 string 相同的对象File_name我也不使用Out3包含age来自sapply函数内原始对象数据我们只想使用A“age”字符串对拆分列表进行子集化这对你有帮助吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在R中的函数中使用变量

来自分类Dev

您可以在R中的函数中使用嵌套参数吗?

来自分类Dev

无法在R中使用以数字命名的变量

来自分类Dev

无法在 Ubuntu 20.04 的 GNU R 中使用 solve() 函数

来自分类Dev

如何在R中的函数中使用外部内置变量

来自分类Dev

如何在R中的lm()函数中使用变量?

来自分类Dev

如何在R中的函数中使用外部内置变量

来自分类Dev

无法在JavaScript中使用函数外的变量

来自分类Dev

无法修剪\ r变量

来自分类Dev

R-在嵌套函数中使用替换

来自分类Dev

R-在嵌套函数中使用替换

来自分类Dev

无法在R中的data.table中使用dput

来自分类Dev

在R中的函数中使变量常量

来自分类Dev

在R中的函数中使变量常量

来自分类Dev

在r中使用变量作为函数参数

来自分类Dev

在r中使用变量作为函数参数

来自分类Dev

无法使用R中的循环和函数更新向量

来自分类Dev

无法使用R中的函数创建新列

来自分类Dev

R无法解析为Android中的变量

来自分类Dev

整洁的Eval:无法在嵌套函数中使用{{var}}吗?

来自分类Dev

无法在React中的require()中使用变量

来自分类Dev

无法在 cshell 中使用别名中的变量

来自分类Dev

R:无法更改函数中的列名

来自分类Dev

标尺无法识别R函数中的参数

来自分类Dev

R无法解析为变量-

来自分类Dev

R无法解析为变量-

来自分类Dev

R中的嵌套函数(使用dyplr)

来自分类Dev

使用R中的Apply函数的嵌套循环

来自分类Dev

无法更新函数中使用的全局变量(Python)