R 需要一些帮助来编写函数吗

R 需要一些帮助来编写函数吗,r,function,survival-analysis,R,Function,Survival Analysis,我正在尝试编写一个函数,它只需要几行代码,就可以输入一个变量。下面是使用Surv函数(生存包)创建对象的代码。第二行获取所讨论的变量,在本例中是列为变量_X,并输出数据,然后可以使用ggsurvplot可视化这些数据。输出为Kaplan-Meier生存曲线。我想做的是有一个函数,这样我就可以输入f(变量X)并为我从数据中选择的任何列可视化输出KM曲线。我希望f(y)输出KM,就像我把y放在~Variable_X当前所在的位置一样。我不熟悉R,也不熟悉函数的工作原理,我试过下面的代码,但显然不起作

我正在尝试编写一个函数,它只需要几行代码,就可以输入一个变量。下面是使用Surv函数(生存包)创建对象的代码。第二行获取所讨论的变量,在本例中是列为变量_X,并输出数据,然后可以使用ggsurvplot可视化这些数据。输出为Kaplan-Meier生存曲线。我想做的是有一个函数,这样我就可以输入f(变量X)并为我从数据中选择的任何列可视化输出KM曲线。我希望f(y)输出KM,就像我把y放在~Variable_X当前所在的位置一样。我不熟悉R,也不熟悉函数的工作原理,我试过下面的代码,但显然不起作用。我正在通过数据营和阅读文章,但我有一个艰难的时间与它,感谢任何帮助

surv_object <- Surv(time = KMeier_DF$Followup_Duration, event = KMeier_DF$Death_Indicator)

fitX <- survfit(surv_object ~ Variable_X, data = KMeier_DF)

ggsurvplot(fitX, data = KMeier_DF, pval = TRUE)

 f<- function(x) {
 dat<-read.csv("T:/datafile.csv")
 KMeier_DF < - dat
 surv_object <- Surv(time = KMeier_DF$Followup_Duration, event = 
 KMeier_DF$Death_Indicator)
 fitX<-survfit(surv_object ~ x, data = KMeier_DF)
 PlotX<- ggsurvplot(fitX, data = KMeier_DF, pval = TRUE)
 return(PlotX)
}

这是家庭作业,对吗

首先,在作为示例提供代码之前,您需要尝试运行该代码。您的示例有几个致命错误
ggsurvplot()
需要对survminer进行库调用,或者按如下方式调用:
survminer::ggsurvplot()

您已定义函数
f
,但从未使用过它。在函数定义中,有一个任性空格
<-
。这是行不通的

我建议您首先定义一个计算两个数字之和的函数,或者连接两个字符串。开始或结束。然后,你可以回到卡普兰·迈耶的故事

其次,在另外一两个类中,您需要了解函数的三个部分。您需要了解函数的范围。在开始复制和粘贴之前,您不妨深入了解基本知识

第三,在你发布另一个问题之前,请阅读


祝你好运。

你遇到的问题的症结实际上是一个很难解决的绊脚石。我创建了一些示例数据。在下面的示例中,我提供了一个函数四个变量,其中一个是您的数据。您可以看到我在列上调用的两种方法,使用
[[]]
,和
[,]
,您可以认为这相当于使用
$
。在功能之外,它们是,但不在内部。
print
功能仅用于显示沿途的数据。如果这些对象存在于您的全局环境中,请逐个删除它们,
rm(surv\u对象)
,或将它们全部清除
rm(list=ls())

希望这能有所帮助。如果我是你,我会提交一份bug报告

编辑 我希望如此,但事实并非如此

testfun <- function(df, varb1, varb2, varb3) {
  surv_object <- Surv(time = df[[varb1]], event = df[,varb2])
  print(surv_object)
  fitX <- survfit(surv_object ~ df[[varb3]], data = df)
  print(fitX)
  attr(fitX[['strata']], "names") <- c("color = 1", "color = 2", "color = 3", "color = 4")
  plotx <- ggsurvplot(fitX, data = df, pval = TRUE) # this gives an error that surv_object is not found
  return(plotx)
}

Error in eval(inp, data, env) : object 'surv_object' not found

testfun在你认为我是一个寻求家庭作业帮助的学生之前,你一直在骗我。我是一名内科医生,正试图在空闲时间学习R,以便更好地与我的生物信息学同事互动。我正在阅读一些文本,但也喜欢这样的互动环境。我见过并尝试过使用简单数值运算的函数,发现它们比调用数据帧的列更直接。我会检查你的链接,我想我会独自奋斗,直到我自己掌握到我能弄明白的地步。罗伯特·哈多,你可以回答一个问题而不必贬低别人@Mike C,提供一个小的数据集来重现错误,在将来会很有帮助。
Error in eval(inp, data, env) : object 'surv_object' not found.
testfun <- function(df, varb1, varb2, varb3) {
  surv_object <- Surv(time = df[[varb1]], event = df[,varb2])
  print(surv_object)
  fitX <- survfit(surv_object ~ df[[varb3]], data = df)
  print(fitX)
  attr(fitX[['strata']], "names") <- c("color = 1", "color = 2", "color = 3", "color = 4")
  plotx <- ggsurvplot(fitX, data = df, pval = TRUE) # this gives an error that surv_object is not found
  return(plotx)
}

Error in eval(inp, data, env) : object 'surv_object' not found