Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建以名称作为参数的R函数?_R - Fatal编程技术网

创建以名称作为参数的R函数?

创建以名称作为参数的R函数?,r,R,假设我有一个如下所示的数据帧: df1 <- data.frame("long name 1"=c(rnorm(n = 100, mean = 0, sd = 1),NA), treatment=sample(x = c(0,1), size = 101, replace = T)) names(df1) <- c("long name 1", "treatment") 有什么方法可以满足我的要求吗?最好在选择列的函数中使用[[而不是$ test

假设我有一个如下所示的数据帧:

df1 <- data.frame("long name 1"=c(rnorm(n = 100, mean = 0, sd = 1),NA),
                  treatment=sample(x = c(0,1), size = 101, replace = T))
names(df1) <- c("long name 1", "treatment")

有什么方法可以满足我的要求吗?

最好在选择列的函数中使用
[[
而不是
$

test.f <- function(data, vname, tname, tvalue=1, cvalue=0) {
    mean(data[[vname]][data[[tname]]==tvalue], na.rm = T)
 }

test.f(data = df1, vname = "long name 1", tname = "treatment")
#[1] 0.1397585

人们有时真的应该开始阅读s。这个问题每天被问一次
test.f(data = df1, vname = "long name 1", tname = "treatment")
Warning message:
  In mean.default(data$vname[data$tname == tvalue], na.rm = T) :
  argument is not numeric or logical: returning NA
test.f <- function(data, vname, tname, tvalue=1, cvalue=0) {
    mean(data[[vname]][data[[tname]]==tvalue], na.rm = T)
 }

test.f(data = df1, vname = "long name 1", tname = "treatment")
#[1] 0.1397585
mean(df1$`long name 1`[df1$treatment==1], na.rm=TRUE)
#[1] 0.1397585