0
이 질문은 here 및 here 앞에 질문했지만 내 문제에 도움이되지 않습니다. 내 데이터 집합에 누락 된 데이터가없고 model.frame
에서 model.matrix
을 만들려고합니다. 다음은 재현 가능한 예입니다.model.frame.default (object, data, xlev = xlev)의 오류 : 가변 길이가 다릅니다 ('z'에서 찾음)
dat = data.frame(x = rep(1:3, each = 5),
y = rnorm(15),
z = rep(c(1,1.1,1.3), each = 5))
# this works
mt = model.matrix(model.frame(lm(y ~ x,dat)))
# this produces the error
mt = model.matrix(model.frame(lm(y ~ x + z,dat)))
왜, 어떻게 수정해야합니까? 양자 택일로, 절충 컬럼을 사용하여 오른쪽, 오른쪽 값의 매트릭스를 다른 방법으로 얻을 수있는 방법은 무엇입니까?
'mt = model.matrix (model.frame (lm (y - x, dat)))'실행하지 마십시오. – cuttlefish44
@ cuttlefish44가 맞다면, 그 코드 행은 작성한대로 실행되지 않습니다. 이것은 함수가 기대하는 인수를보기 위해'help ("model.matrix")'를 볼 필요가 있기 때문이다. 수식 또는 용어 객체가 첫 번째 인수로 필요합니다. 'model.matrix (y ~ x + z, model.frame (lm (y ~ x + z, dat)))'를 시도해보십시오. – duckmayr
'model.matrix'는 default와 lm 메쏘드를 가지고 있습니다. 처음에는'model.matrix (y ~ x + z, dat)'로 쓰거나'lm' 객체의 함수로 써야한다면'model.matrix (lm (y ~ x + z, dat))' –