首页 > 解决方案 > 为什么这个返回数据帧值频率的 R 函数不起作用?

问题描述

我正在尝试使用两个参数(变量,值)做一个函数。该函数返回数据帧值的频率。我编写了以下代码,但它返回错误:找不到对象“变量”。关于为什么的任何想法?在控制台中逐步执行此操作似乎有效,但不在功能范围内。

data <- data.frame(SEX = c("MASCULINO", "FEMENINO", "FEMENINO","FEMENINO",
                          "MASCULINO", "FEMENINO", "FEMENINO","FEMENINO",
                          "MASCULINO", "FEMENINO", "FEMENINO","FEMENINO",
                          "MASCULINO", "FEMENINO", "FEMENINO","FEMENINO",
                          "MASCULINO", "FEMENINO", "FEMENINO","FEMENINO"),
                   AGE = c(33, 33, 45, 56, 76, 45, 45, 23, 56, 45,
                           19, 23, 45, 56, 28, 36, 53, 49, 47, 22))

value_frequency <- function(variable, value){
        variable <- data$variable
        table <- table(data$variable)
        frequency<- table[[value]]}

value_frequency (SEX, FEMENINO)

Error in frecuencia_valor(SEXO, FEMENINO) : object 'FEMENINO' not found

标签: rfunctiondataframefrequency

解决方案


尝试这个:

value_frequency <- function(variable, value){
  variable <- data[,variable]
  table <- table(variable)
  frequency <- table[value]
  return(frequency)
  }

value_frequency ("SEX", "FEMENINO")
FEMENINO 
      15 

或者更短一点,只返回值,而不是关联的名称:

value_frequency <- function(variable, value){
  return(table(data[,variable])[[value]])
  }

推荐阅读