행 데이터는 분할하지만 열 헤더는 분할하지 않습니다안녕하세요,
아래의 문제없이 CSV 파일을 열 수 있습니다. _ 및 |가있는 각 열의 첫 번째 값을 읽는 방법 스플릿. 나중에 열 수 있도록 열 머리글을 같은 이름으로 유지하고 싶습니다.
_ 또는 |를 제거하기 위해 데이터 미리보기를 열려고했습니다. 그러나 열 머리글도 나눕니다.
Data: <BR />ID,Name,Country,Column1_Value,Column2_Value_More,Percent_Name_Count<BR />125480,Jack,CA,0.310_0.310_0.310_0.310_0.310_0.310_0.310_0.310,0.610|0.610|0.610|0.610|0.610|0.610|0.610|0.610,0.7<BR /><BR />Keep: <BR />ID,Name,Country,Column1_Value,Column2_Value_More,Percent_Name_Count<BR />125480,Jack,CA,0.310,0.610,0.7
csv_file = "C:/test3.csv";
Open(csv_file);
test3.csv
ID,Name,Country,Column1_Value,Column2_Value_More,Percent_Name_Count
125480,Jack,CA,0.310_0.310_0.310_0.310_0.310_0.310_0.310_0.310,0.610|0.610|0.610|0.610|0.610|0.610|0.610|0.610,0.7
125481,Jane,US,0.300_0.300_0.300_0.300_0.300_0.300_0.300_0.300,0.600|0.600|0.600|0.600|0.600|0.600|0.600|0.600,0.69
125482,Joe,BZ,0.360_0.360_0.360_0.360_0.360_0.360_0.360_0.360,0.620|0.620|0.620|0.620|0.620|0.620|0.620|0.620,0.71
125483,Jim,FR,0.340_0.340_0.340_0.340_0.340_0.340_0.340_0.340,0.640|0.640|0.640|0.640|0.640|0.640|0.640|0.640,0.73
125484,Jerry,US,0.330_0.330_0.330_0.330_0.330_0.330_0.330_0.330,0.630|0.630|0.630|0.630|0.630|0.630|0.630|0.630,0.72
125485,John,CA,0.360_0.360_0.360_0.360_0.360_0.360_0.360_0.360,0.620|0.620|0.620|0.620|0.620|0.620|0.620|0.620,0.71
감사.
다시 : 행 데이터는 분할하지만 열 헤더는 분할하지 않습니다왜 형식이 엉망인지 잘 모르겠습니다. 데이터의 내용과 유지하고 싶은 것을 보여주고 싶었습니다.
Data:
ID,Name,Country,Column1_Value,Column2_Value_More,Percent_Name_Count
125480,Jack,CA,0.310_0.310_0.310_0.310_0.310_0.310_0.310_0.310,0.610|0.610|0.610|0.610|0.610|0.610|0.610|0.610,0.7
Keep:
ID,Name,Country,Column1_Value,Column2_Value_More,Percent_Name_Count
125480,Jack,CA,0.310,0.610,0.7
다시 감사합니다.
다시 : 행 데이터는 분할하지만 열 헤더는 분할하지 않습니다이것은 Word () 함수를 사용하는 매우 간단한 조작입니다. JMP에는 매우 강력한 문자 조작 기능이 있습니다. 설명서는 스크립팅 안내서 및 스크립팅 색인을 참조하십시오.
names default to here(1);
dt=open("c:\test3.csv");
For Each Row(
:Column1_Value = word(1, :Column1_Value, "_" );
:Column2_Value_More = word(1, :Column2_Value_More, "|" );
);
dt:Column1_Value << data type(numeric);
dt:Column1_Value << modeling type(continuous);
dt:Column2_Value_More << data type(numeric);
dt:Column2_Value_More << modeling type(continuous);다시 : 행 데이터는 분할하지만 열 헤더는 분할하지 않습니다짐,
빠른 답변 감사합니다. word ()로 특정 열을 하드 코드로 사용하지 않으려면 어떻게해야합니까? Cols의 for 루프를 _ 및 |의 동적 변경에 사용할 수 있습니까?
감사.
다시 : 행 데이터는 분할하지만 열 헤더는 분할하지 않습니다- 당신이 묻는 질문이 주어지면 JSL의 기초에 대해 배우는 데 시간을 할애해야합니다. 스크립팅 안내서를 읽으십시오 : Help ==> JMP Documentation Library ==> 스크립팅 안내서
- 귀하의 질문에 대답하기 위해 동적 참조를 사용하도록 원래 스크립트에서 Word () 함수 중 하나를 수정했습니다.
names default to here(1);
dt=open("c:\users\jim\documents\test3.csv");
myWord = 1;
myColumn = "Column1_Value";
myDelimiter = "_";
For Each Row(
:Column1_Value = word(myWord, as Column( myColumn ), myDelimiter );
:Column2_Value_More = word(1, :Column2_Value_More, "|" );
);
dt:Column1_Value << data type(numeric);
dt:Column1_Value << modeling type(continuous);
dt:Column2_Value_More << data type(numeric);
dt:Column2_Value_More << modeling type(continuous);
다시 : 행 데이터는 분할하지만 열 헤더는 분할하지 않습니다짐,
JSL을 처음 배우고 배우면서 혼란에 대해 죄송합니다.
열 헤더가 더 있으면 열 헤더 이름을 하드 코딩하지 않고 split _ 또는 |의 첫 번째 값을 얻기 위해 반복합니다. 아래에서 시도했지만 코드가 손상되었음을 알고 있습니다.
csv_file = "C:/test3.csv";
CSV_data = Open( csv_file );
col = CSV_data << get column names( string );
nc = N Items( col );
For( i = 1, i <= nc, i++,
For Each Row(
:col[i] = Word( 1, col[i], "_" );
:col[i] = Word( 1, col[i], "|" );
);
);
ID,Name,Country,Column1_Value,Column2_Value_More,Percent_Name_Count,COL1,COL2_ABC
125480,Jack,CA,0.310_0.310_0.310_0.310_0.310_0.310_0.310_0.310,0.610|0.610|0.610|0.610|0.610|0.610|0.610|0.610,0.7,0.7,0.9_0.9
125481,Jane,US,0.300_0.300_0.300_0.300_0.300_0.300_0.300_0.300,0.600|0.600|0.600|0.600|0.600|0.600|0.600|0.600,0.69,0.7,0.9_0.9
125482,Joe,BZ,0.360_0.360_0.360_0.360_0.360_0.360_0.360_0.360,0.620|0.620|0.620|0.620|0.620|0.620|0.620|0.620,0.71,0.7,0.9_0.9
125483,Jim,FR,0.340_0.340_0.340_0.340_0.340_0.340_0.340_0.340,0.640|0.640|0.640|0.640|0.640|0.640|0.640|0.640,0.73,0.7,0.9_0.9
125484,Jerry,US,0.330_0.330_0.330_0.330_0.330_0.330_0.330_0.330,0.630|0.630|0.630|0.630|0.630|0.630|0.630|0.630,0.72,0.7,0.9_0.9
125485,John,CA,0.360_0.360_0.360_0.360_0.360_0.360_0.360_0.360,0.620|0.620|0.620|0.620|0.620|0.620|0.620|0.620,0.71,0.7,0.9_0.9
다시 : 행 데이터는 분할하지만 열 헤더는 분할하지 않습니다매우 가깝지만 마지막으로 보낸 코드를 보면 열을 참조 할 때 As Column ()을 앞에 놓았으므로 실제로 필요한 것은
names default to here(1);
csv_file = "C:/test3.csv";
CSV_data = Open( csv_file );
col = CSV_data << get column names( string );
nc = N Items( col );
// You don't want the first 3 columns processed,
// or the last one processed, so the index values
// to be used needs to be changed to handle this
For( i = 4, i <= nc - 1, i++,
For Each Row(
as column(col[i]) = Word( 1, as column( col[i]), "_|" );
);
);