救救孩子吧,R studio报错

各位同道请赐教
**f <- cph(fml, x=T, y=T, surv=T, data=bc)
报错:
**Error in unique.matrix(y[y != "" & y != " "]) :
MARGIN = 1 is invalid for dim =

我猜你之前的数据是这个
“fml <- as.formula(paste0('BaSurv~',paste0(GetFactors_mul,collapse = '+'))) ## 构建多因素Cox数据
f <- cph(fml, x=T, y=T, surv=T, data=rt)”
由于“fml ”可得出“BaSurv ~ T_category + M_category + HPV_status + signature”
你如果要运行这串代码,你需要先用“str(rt)”去查看在数据集“rt”中你要带入列线图的几个变量 “ T_category + M_category + HPV_status + signature”是否都是因子型(factor),如果不是,用“rt$signature <- as.factor(rt$signature)”将其转换成因子型,再运行这串代码就能成功

你要是用解螺旋的课程的话,我运行了他的代码,发现“rt$signature”虽然分了'Low-Score','High-Score'但是你查看他的数据类型是“字符串(chr)”用“str(rt)”去查看在数据集“rt”你会发现出现
【signature : chr [1:181, 1] "Low-Score" "Low-Score" "Low-Score" "Low-Score"】
,但是正确应该是【signature : Factor w/ 2 levels "High-Score","Low-Score": 2 2 2 2 1 2 】,
这就需要我之前说的用“rt$signature <- as.factor(rt$signature)”将其转换成因子型,这样我们再用“str(rt)”去查看在数据集“rt”就得到了
【signature : Factor w/ 2 levels "High-Score","Low-Score": 2 2 2 2 1 2 】

总结一下,
就是解螺旋的课程中他带入到函数“cph”中“fml ”存在的变量中有不是“因子型(factor)”的,需要我们转化一下,
他也没有强调这一点,所以咱们试着还原代码的时候出问题了
解螺旋的那个课有好些代码运行错误都是函数对变量类型有要求
比如单因素和多因素分析当中要求必须全是是数值型(num)变量;还有这个函数“cph”中的“fml ”存在的变量中必须全是是“因子型(factor)”

2022/1/20 5:22 终于想到解决方案,给个赞吧!!!!!!

代码不够完整啊

你是不是和我一样看了解螺旋的视频的?我也看到了这里,死活运行不出来。。。