Я новичок в Мата, и у меня есть сомнения относительно того, как работает st_select()
. Я хочу извлечь матрицу с не пропущенными строками и сохранить ее как новую матрицу (nmF
). Когда я запускаю свою программу, я получаю сообщение о том, что эта новая матрица не найдена. Я думаю, проблема в том, что мне нужно определить матрицу nmF
перед сохранением моего результата, но я не знаю, как это сделать в Mata. Любой намек был бы очень признателен!Мата-манипуляция матрицы: выбор не пропущенных строк матрицы
cap program drop myexample
program def myexample, rclass byable(recall) sortpreserve
version 14
syntax varlist [aweight iweight fweight] [if] [in]
args var1
tempname F rF nmF
set more off
local var1: word 1 of `varlist'
mat `F' = (.,.,. \ 0,2,0 \ 0,0,3)
mat list `F'
mata st_matrix(st_local("rF"), colsum(st_matrix("`F'"))) /*1 x cols*/
mat list `rF'
mata st_select(st_matrix(st_local("nmF")),st_matrix("`F'"), rowmissing(st_matrix("`F'"):==0))
*mata : st_matrix(st_local("nmF"), select(st_matrix("`F'"), rowmissing(st_matrix("`F'"):==0))) /* I have also tried this*/
mat list `nmF'
end
Спасибо за быстрый повтор. Я также пробовал: st_matrix (st_local ("nmF"), select (st_matrix ("F '"), rowmissing (st_matrix ("' F' "): == 0)))', но я получаю такой же результат. Матрица не создается. – apereza