Warning message: In .add_surv_median(p, fit, type = surv.median.line, fun = fun, : Adding survival median lines is not allowed when fun is: cumhaz什么意思
时间: 2024-04-18 16:23:38 浏览: 39
这个警告信息表示在使用 `surv_summary` 函数时,设置的参数 `fun` 为 "cumhaz",但同时又尝试添加生存中位数线。然而,基于累积风险函数(cumulative hazard function)的方法并不支持添加生存中位数线。
生存中位数是指在给定时间点上的生存函数值为0.5的时间点。它通常用于描述生存分析中的中位生存时间。然而,在使用累积风险函数时,由于其特性和计算方式的不同,无法直接从中得到生存中位数。
如果您希望计算生存中位数,可以考虑使用其他方法或函数,如 `surv_median` 函数,该函数可以根据不同的统计方法来估计生存中位数。请注意,在使用不同的方法时,可能需要进行适当的假设和调整。
总之,警告信息的含义是您不能在使用累积风险函数时添加生存中位数线。您可以尝试使用其他方法来计算生存中位数或重新审查分析流程以确定是否需要添加该线条。
相关问题
> res.sum <- surv_summary(fit) Error in surv_summary(fit) : could not find function "surv_summary"什么问题
这个错误的原因是无法找到名为 "surv_summary" 的函数。出现这种情况可能有以下几种可能性:
1. 没有正确加载或安装与 "surv_summary" 相关的包。请确保已经使用 `library` 或 `require` 命令加载了正确的包,并且包已经成功安装。
2. "surv_summary" 函数可能不存在于您使用的软件包中。请检查您是否正确地引用了函数,并且该函数确实存在于您使用的包中。
3. 如果您自己编写了 "surv_summary" 函数,那么可能是因为函数的定义存在错误或者未正确加载到环境中。
请检查以上几个可能的原因,并逐一排除以找到解决方法。
def __stk_surv(): df=pd.read_sql("select ts_code from stock_basic", con = con0) ts_code = (df[df['ts_code'].str.contains('[HZ]')]['ts_code'] .drop_duplicates() .apply(lambda x: f"'{x}'") .reset_index(drop=True)) for i in ts_code: try: start_date = str(pd.read_sql("select surv_date from stk_surv", con = con3).sort_values('surv_date',ascending = False).iloc[0,0]) start_date=pd.to_datetime(start_date)+pd.Timedelta(1,'days') start_date=start_date.strftime('%Y%m%d') except: start_date = 20220101 dateToday = datetime.date.today().strftime('%Y%m%d') end_date = dateToday i = i[1:10] df = pro.stk_surv(**{ "ts_code": i, "trade_date": "", "start_date": start_date, "end_date": end_date, "limit": "", "offset": "" }, fields=[ "ts_code", "name", "surv_date", "fund_visitors", "rece_place", "rece_mode", "rece_org", "org_type", "comp_rece" ]) # print(df) time.sleep(0.31) df = df[df['rece_mode'].str.contains('调研')] df.to_sql(name='stk_surv',con=con3,if_exists='append',index=False) 增加进度条
你可以在循环中使用tqdm库来添加进度条。以下是修改后的代码示例:
```
from tqdm import tqdm
import time
def __stk_surv():
df=pd.read_sql("select ts_code from stock_basic", con = con0)
ts_code = (df[df['ts_code'].str.contains('[HZ]')]['ts_code']
.drop_duplicates()
.apply(lambda x: f"'{x}'")
.reset_index(drop=True))
for i in tqdm(ts_code):
try:
start_date = str(pd.read_sql("select surv_date from stk_surv", con = con3).sort_values('surv_date',ascending = False).iloc[0,0])
start_date=pd.to_datetime(start_date)+pd.Timedelta(1,'days')
start_date=start_date.strftime('%Y%m%d')
except:
start_date = 20220101
dateToday = datetime.date.today().strftime('%Y%m%d')
end_date = dateToday
i = i[1:10]
df = pro.stk_surv(**{
"ts_code": i,
"trade_date": "",
"start_date": start_date,
"end_date": end_date,
"limit": "",
"offset": ""
}, fields=[
"ts_code",
"name",
"surv_date",
"fund_visitors",
"rece_place",
"rece_mode",
"rece_org",
"org_type",
"comp_rece"
])
# print(df)
time.sleep(0.31)
df = df[df['rece_mode'].str.contains('调研')]
df.to_sql(name='stk_surv',con=con3,if_exists='append',index=False)
```
在上面的代码中,我们使用了tqdm库来包装循环,以自动为你添加进度条。你可以根据需要自定义进度条的样式和位置。