모두 안녕
다른 이전 열의 항목으로 데이터 테이블에서 누락된 열 항목을 업데이트해야 합니다. JSL 코드 및 JMP 14 사용.
작업하려는 코드는 다음과 같습니다. "객체에 할당하려고 시도하는 중..." 오류가 계속 발생합니다. L-값 액세스.."
도움을 주시면 감사하겠습니다 ..
dt=current data table();
Newcols={ "anew", "bnew", "cnew"};
oldcols={ "a", "b", "c"};
//---Update entries from old cols if new column entry is missing
For( k = 1 , k <= Length( oldcols ), k++,
For Each Row(
temp = column(dt, Newcols[k]);
oldc = column(dt, oldcols[k]);
column (dt,Newcols[k]) = If( Is Missing( as column(dt,Newcols[k]) ) , oldc , temp) ;
);
);
한 가지 옵션은 << 각 값 설정()을 사용하는 것입니다.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(4),
New Column("a", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4])),
New Column("b", Numeric, "Continuous", Format("Best", 12), Set Values([5, 6, 7, 8])),
New Column("a2", Numeric, "Continuous", Format("Best", 12), Set Values([11, ., 33, 44])),
New Column("b2", Numeric, "Continuous", Format("Best", 12), Set Values([., ., 77, .]))
);
wait(2); // demo purposes
new_cols = {"a2", "b2"};
old_cols = {"a", "b"};
For(i = 1, i <= N Items(old_cols), i++,
Column(dt, new_cols[i]) << Set Each Value(
If(Is Missing(AsColumn(Column(dt, new_cols[i]))),
AsColumn(Column(dt, old_cols[i]))
,
AsColumn(Column(dt, new_cols[i]))
)
)
);
제안한대로 값을 추가하려면 Column에 [] 또는 [Row()]를 제공해야한다고 생각합니다.
For(k = 1, k <= Length(old_cols), k++,
For Each Row(
new_col_val = Column(dt, new_cols[k])[];
old_col_val = Column(dt, old_cols[k])[];
Column(dt, new_cols[k])[] = If(Is Missing(new_col_val), old_col_val, new_col_val)
)
);
또는 열로 사용
For(k = 1, k <= Length(old_cols), k++,
For Each Row(
new_col_val = AsColumn(dt, new_cols[k]);
old_col_val = AsColumn(dt, old_cols[k]);
AsColumn(dt, new_cols[k])[] = If(Is Missing(new_col_val), old_col_val, new_col_val)
)
);