创建用于构建 Dataframe 的函数

ktca8awb  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(145)

我正在尝试创建一个函数,基本上构建一个 Dataframe 并返回它。这个新的 Dataframe 是由我拥有的另一个 Dataframe metadata ..中的列组成的,除了一些我想要控制的额外数据,通过在调用函数时传递TRUE或FALSE值。
下面是我所做的:

make_data = function(metric, use_additions = FALSE){
  
  data = data.frame(my_metric = metadata[['metric']], gender = metadata$Gender , 
                    age = as.numeric(metadata$Age) , use_additions = t(additional_data))
  data = data %>% dplyr::select(my_metric, everything())
  return(data)
}

data = make_data(CR, FALSE)

我每次都要传递不同的metric值,而其他所有的特性都保持不变。比如这里我调用了一个函数,它的度量是CR,这是我想在元数据中使用的列的名称。我想控制的参数是use_additions,有时候我想添加它,有时候我不想。
metadataadditional_data具有完全相同的行名称和相同的行号。只是是否添加数据。
我收到此错误:

Error in data.frame(metric = metadata[["metric"]], gender = metadata$Gender,  : 
  arguments imply differing number of rows: 0, 1523
In addition: Warning message:
In data.frame(metric = metadata[["metric"]], gender = metadata$Gender,  :
 
Error in data.frame(my_metric = metadata[["metric"]], gender = metadata$Gender, :
arguments imply differing number of rows: 0, 1523

我尝试过几种方法来实现这个功能,有''和没有$,但是没有一种有效。例如,当我输入metric = metadata[[metric]]时,得到的结果是:

Error in (function(x, i, exact) if (is.matrix(i)) as.matrix(x)[[i]] else .subset2(x, :
object 'CR' not found
h79rfbju

h79rfbju1#

make_data = function(colname, use_additions = FALSE){
  
  data = data.frame(my_metric = metadata[colname], gender = metadata$Gender , 
                    age = as.numeric(metadata$Age))
  if (use_additions) data$use_additions=additional_data
  return(data)
}

data = make_data(“CR”, FALSE)

相关问题