다른 폴더에서 여러 CSV 파일 가져오기, 값 업데이트 및 다른 이름으로 CSV 저장기본 데이터 폴더에 다른 열 이름을 가진 약 95개의 csv 파일이 저장되고 \data\dataset1\dataset1.csv, \data\dataset2\dataset2.csv 등과 같은 95개의 다른 하위 폴더가 있습니다. id1 및 id2 열은 공통 변수입니다. 모든 파일. 다음을 수행하고 싶습니다.
- 95개의 모든 csv 파일을 JMP로 가져오기(JMP Pro 16 사용)
- 모든 95개 파일의 조건에 따라 값 업데이트: if (id1 = 'a001' then id2='b001')
- 업데이트된 csv 파일을 각 폴더에 다른 이름으로 저장
첫 번째 행은 파일 제목이며 제거할 수 없습니다. 열/변수 이름은 행 2에서 시작하고 데이터는 행 3에서 시작합니다.
다음을 통해 모든 파일을 가져올 수 있었습니다.
dt: 다중 파일 가져오기(
<<폴더 설정(
"C:\데이터\"
),
<<숨김 표시 설정( 0 ),
<<하위 폴더 설정( 1 ),
<<이름 필터 설정( "*.csv" ),
<<이름 설정 활성화( 1 ),
<<크기 필터 설정( {522, 2096152} ),
<<크기 설정 활성화( 0 ),
<<날짜 필터 설정( {3715322235, 3718948571} ),
<<날짜 설정 활성화( 0 ),
<<파일 이름 추가 열 설정( 0 ),
<<파일 크기 열 추가 설정( 0 ),
<<파일 추가 날짜 열 설정( 0 ),
<<가져오기 모드 설정( "CSVData" ),
<<문자 집합 설정( "최상의 추측" ),
<<스택 모드 설정( "파일당 테이블" ),
< < < << CSV 헤더 행 수 설정( 1 ),
< < < < < < < < < < < < < < < < < < < << 가져오기 콜백 설정( Empty() )
) << 데이터 가져오기;
이 코드에는 열 이름과 데이터가 시작되는 위치에 대한 수식이 없습니다.
그런 다음 다음을 사용하여 값을 업데이트하려고 했습니다.
dt: subjid <<
:id1 << 수식 설정(
If( :id2 == "a001", :id1 == "b001")
);
결과적으로 id1 컬럼의 "a001" 이전 값은 삭제되고 "a001"의 id1 값은 업데이트되지 않습니다.
나는 이 단계의 주식이고 각각의 폴더에 다른 이름으로 파일을 저장하는 다음 단계를 생각조차 할 수 없습니다. 모든 도움/지침을 주시면 감사하겠습니다.
감사합니다
데이터 테이블창Re: 다른 폴더에서 여러 CSV 파일 가져오기, 값 업데이트 및 다른 이름으로 CSV 저장JSL이 무엇을했는지 잘 모르겠습니다.
dt: subjid << :id1 << Set Formula( If( :id2 == "a001", :id1 == "b001") )
<< "send" 연산자는 한 번만 나타나야 하며 수식을 추가할 열은 왼쪽에 있어야 합니다. 그런 다음 if 문에는 조건이 있어야 하고 그 뒤에 true 케이스에 대한 값이 오고 false 케이스에 대한 또 다른 값이 옵니다. 이 같은
dt << New Column( "likes",
"character",
formula( If(
Is Missing( name ), // first test
"unknown", // if first test is true
name == "KATIE", // second test
"cats", // if second test is true
"dogs" // if second test is false
)
)
);
이는 열 이름의 값에 따라 고양이 또는 개의 새 수식 열을 생성하기 위한 것입니다. 이름이 비어 있으면(누락됨) "알 수 없음"입니다.
또는 다른 열의 값을 기반으로 기존 열을 덮어쓰는 것이 목표인 경우 공식 열보다 명시적 루프가 더 나을 수 있습니다.
foreachrow(dt,
if(
name == "DANNY", // a test with ==
name = "Dani"; // an assignment with =
sex = "F";
, /* else if */ name == "ROBERT",
name = "Roberta";
sex = "F";
);
);
( 비밀이라면 쉼표와 세미콜론을 이해하는 데 도움이 될 수 있습니다. ) 이름이 일치하지 않는 한 행은 변경되지 않습니다.
두 예가 어떻게 다른지 주목하십시오.
첫 번째 예는 수식의 열에 할당될 if(...)에 답을 생성해야 합니다. 열이 해당 행에 대해 변경되지 않아야 하는 경우 수식 값은 행의 원래 값이어야 합니다.편집: 죄송합니다, 틀렸습니다. 수식 열이 모든 행에 대해 값을 생성하는지 확인하십시오.
두 번째 예는 선택한 행과 열만 업데이트합니다.
CSV 파일을 작성할 계획이므로(JMP 파일을 저장하지 않음) 열에 추가한 수식 표현식은 저장되지 않습니다(수식에서 업데이트된 값은 저장되지만). 두 번째 예.
Re: 다른 폴더에서 여러 CSV 파일 가져오기, 값 업데이트 및 다른 이름으로 CSV 저장크레이지 감사합니다. 언급했듯이 두 번째 예제는 잘 작동했습니다. 그러나 하나의 CSV를 열거나 가져올 때만 작동했지만 여러 CSV를 가져올 때는 작동하지 않았습니다. 또한 csv를 다른 파일 이름으로 해당 폴더에 다시 작성하는 마지막 단계도 수행하도록 안내해 주시겠습니까?
감사합니다,
헬랄
Re: 다른 폴더에서 여러 CSV 파일 가져오기, 값 업데이트 및 다른 이름으로 CSV 저장일반적으로 유용하고 일부는 수행 방법이 명확하지 않기 때문에 감사합니다.
MFI 업데이트 CSV
Re: 다른 폴더에서 여러 CSV 파일 가져오기, 값 업데이트 및 다른 이름으로 CSV 저장다시 감사합니다. 이것은 굉장합니다.
헬랄