우리 모두 이런 상황을 한 번쯤은 겪어보죠. 보기 좋게 서식을 지정한 엑셀 표인데, 분석 가능성은 전혀 고려하지 않은 경우 말이에요.
자유 형식 텍스트 셀에는 다음과 같이 표시됩니다.
m/d: 텍스트 [alt+enter]
m/d: 텍스트 [alt+enter]
m/d: 텍스트 [alt+enter]
m/d: 텍스트 [alt+enter]
...
m/d: 텍스트 [alt+enter]
데이터를 JMP로 내보낼 때 셀은 다음과 같이 축소됩니다: m/d: 텍스트 m/d: 텍스트 m/d: 텍스트 ... m/d: 텍스트.
n개의 요소로 이루어진 긴 문자열을 각 요소별로 별도의 행에 파싱하고 싶습니다. 열로 나누는 것이 아니라, n은 가변적입니다. 이렇게 하면 기존 열을 복사하고 파싱된 요소를 추가하여 새로운 데이터 테이블을 생성할 수 있습니다. 즉, 텍스트를 열로 나누는 것이 아니라 행으로 나누는 것입니다.
다행히 #/#는 일관되게 사용되므로, 그것들을 세어서 n번 반복할 수 있었습니다.
혹시 비슷한 일을 해보신 분 계신가요?
나는 이런 종류의 일을 많이한다. 당신은 그것을 통해 slog해야합니다. 다음은 열 1에 여러 값이 있고 열 2가 정적 인 예입니다.
dt = New Table( "Test", Add Rows( 3 ), Set Cell Height( 83 ),
New Column( "Column 1", Character, "Nominal",
Set Values(
{"5/3: ABCDE
5/4: DEF
5/5: GHI",
"5/6: xyz
5/7: foo
5/8: bar
5/9: Hello
5/10: World",
"4/16: The
4/17: Entire
4/18: Scheme
4/19: Of
4/20: Things
4/21: Is broken"} ),
Set Display Width( 156 )
),
New Column( "Column 2", Character, "Nominal", Set Values( {"A", "B", "C"} ) )
);
dtnew = new table("Text_to_Rows",
new column("Column 1", Character, "Nominal"),
new column("Column 2", Character, "Nominal"),
);
delim = "
";
m = 0;
for (i = 1, i <= nrows(dt), i++,
c1_words = words(dt:column 1[i], delim);
one_c2 = dt:column 2[i];
for (k = 1, k <= nitems(c1_words), k++,
dtnew << add rows(1);
m++;
dtnew:Column 1[m] = c1_words[k];
dtnew:Column 2[m] = one_c2;
);
);
베드로:
감사! 그 트릭을했다. 나는 당신에게 당신이 선택한 음료를 빚지고 있습니다.
플랫 형식으로 데이터를 입력하기 위해 데이터 작성자를 위해 노력하고 있습니다 ...
하하가 좋은데 Discovery 2020에서 you기를 바랍니다.