다른 열의 문자열이 필요한 이름을 가진 열을 찾습니다."Freq"라는 열의 값을 사용하고 다른 열을 찾으려고 합니다. Invalid Row 오류가 발생합니다.
내가 찾고 있는 열은 사용 가능합니다. Freq 열은 숫자입니다. 그게 문제인가요?
예를 들어 Freq 열의 행에 있는 값이 200이면 IDynatTsense__200__65에서 값을 찾고 있습니다.
암호:
HashFreqval = Column ( "Freq" );
IDyn = 열 ( "IDynatTsense__" ||HashFreqval[]|| "__65" );
오류:

기본 데이터 분석 및 모델링Re: 다른 열의 문자열이 필요한 열 이름을 찾으세요column[]은 현재 행() 의 값을 반환합니다.
row() 의 기본값은 0입니다. 행 1의 값에 액세스하려면 row()=1을 통해 포인터를 조정하기만 하면 됩니다.
New Table( "test",
Add Rows( 1 ),
New Column( "Freq",
Character,
Set Values( {"200"} )
),
New Column( "IDynatTsense__200__65",
Set Values( [20] )
)
);
HashFreqval = Column( "Freq" );
row()=1;
IDyn = Column( "IDynatTsense__"||HashFreqval[]|| "__65" );Re: 다른 열의 문자열이 필요한 이름의 열 찾기이 오류는 hogi가 작성한 내용에 의해 발생합니다. column()[] (column()[row()]와 동일)은 현재 행의 값을 찾고 있는데, JMP에서는 기본적으로 0입니다. 이는 잘못된 행 번호입니다( Iterate on Rows in a Table(jmp.com) 에서 이에 대해 읽을 수 있습니다).
이 코드를 어떻게 활용하고 계신가요? 아마 전체 코드를 사용하고 있지는 않을 겁니다. "Freq"에서 값을 찾고 있는데, 어느 행에서 찾고 있고, 아마도 루프를 돌고 있나요? IDynatTsense__200__65(어느 행?)에서 값을 가져오려고 하시나요? 아니면 참조만 가져오려고 하시나요?
Re: 다른 열의 문자열이 필요한 열 이름을 찾으세요제 질문이 명확하지 않은 것 같습니다. 간단한 예를 첨부합니다.
HashFreq 열의 값에 따라 Idyn_ 200 _65 또는 Idyn_ 400 _65 열에서 데이터를 선택해야 합니다.
일단 해당 데이터를 얻으면 공식을 사용하여 추가로 계산할 수 있습니다.
Names Default To Here( 1 );
dt1 = Open( "TestDataJunk.jmp" );
HashFreqval = Column( "HashFreq" );
IDyn = Column( "IDynatTsense__"||HashFreqval[]|| "__65" );
dt1 << New Column( "NewVal", Numeric, Continuous, Formula( IDyn[] ));
도와주셔서 감사합니다!
Re: 다른 열의 문자열이 필요한 이름의 열 찾기데이터가 훨씬 더 복잡하고 수식이 필요하지 않은 경우에는 For Each Row를 사용하는 것이 가장 좋습니다.
Names Default To Here(1);
dt = Open("$DOWNLOADS/TestDataJunk.jmp");
dt << New Column("NewVal2", Numeric, Continuous);
For Each Row(dt,
val = Column(dt, "HashFreq")[Row()];
val_col = Eval Insert("Idyn_^val^_65");
Column(dt, "NewVal2")[Row()] = Column(dt, val_col)[Row()];
);