Я не понимаю вывод R. Похоже, мой четко определенный объект outcome
не найден, хотя он успешно используется в подфункциях и печатается. Как это возможно?
Мой R-код:
f.hazardratio <- function(input)
{
outcome <- c("A","B","C","D","E","F")
category <- c(rep("surv",2),rep("term",2),rep("lobw",2))
for(i in 1:length(outcome))
{
if(nrow(subset(input,input[,paste("out",category[i],sep=".")]==outcome[i]))>0)
{
lex <- f.lexis(data=input,
out=category[i],
out.case=outcome[i])
print(str(lex))
print(outcome[i])
print(head(subset(lex, lex.Xst=="A")))
print(head(subset(lex, lex.Xst==outcome[i])))
# nrow(subset(lex, lex.Xst==outcome[i])) is the value I am actually interest in and causes the same error message as print(), which I only added for identifying the problem
# code continues, but not shown ...
}
}
}
И вывод:
Classes ‘Lexis’ and 'data.frame': 107455 obs. of 6 variables:
$ pre.time : num
$ lex.dur : num
$ lex.Xst : Factor w/ 3 levels
$ lex.Cst : Factor w/ 3 levels
[1] "A"
pre.time lex.dur lex.Xst lex.Cst
930 145 36 A vv
2255 273 14 A vv
4842 115 99 A vv
5127 260 30 A vv
5217 71 108 A v
5422 152 2 A vv
Error in eval(expr, envir, enclos) (from #32) : object 'outcome' not found
Я уже пытался изменить тип переменных с факторного на символьный или наоборот и пытался определить промежуточную, временную переменную tmp <- outcome[i]
. К сожалению, пока ничего не получилось.