cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Discussions

Solve problems, and share tips and tricks with other JMP users.
%3CLINGO-SUB%20id%3D%22lingo-sub-499621%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%20%EC%9D%BD%EA%B8%B0%2C%20%ED%8A%B9%EC%A0%95%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%ED%8F%AC%ED%95%A8%ED%95%98%EB%8A%94%20%EC%A4%84%20%EC%B0%BE%EA%B8%B0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-499621%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%EC%97%AC%EB%9F%AC%EB%B6%84%2C%20%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%EB%8B%A4%EC%9D%8C%EC%9D%80%20%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9E%85%EB%8B%88%EB%8B%A4.%20%EB%8F%99%EC%9D%BC%ED%95%9C%20%EC%9E%91%EC%97%85%EC%9D%84%20%EC%88%98%ED%96%89%ED%95%98%EB%8A%94%20%EB%8D%94%20%EC%A2%8B%EC%9D%80%20%EB%B0%A9%EB%B2%95%EC%9D%B4%20%EC%9E%88%EB%8A%94%EC%A7%80%20%EC%95%8C%EA%B3%A0%20%EC%8B%B6%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%EB%A8%BC%EC%A0%80%20%22%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%20%EB%A1%9C%EB%93%9C%22%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%EB%B3%80%EC%88%98%20%22file_text1%22%EB%A1%9C%20%EC%9D%BD%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%EB%8B%A4%EC%9D%8C%EC%9C%BC%EB%A1%9C%20%22%5C!n%22%EA%B3%BC%20%ED%95%A8%EA%BB%98%20%22words%22%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%A4%84%EC%9D%84%20%EA%B5%AC%EB%B6%84%ED%95%98%EA%B3%A0%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%EB%B0%B0%EC%97%B4%20%22file_text2%22%EC%97%90%20%EB%A1%9C%EB%93%9C%ED%95%A9%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%EA%B7%B8%EB%9F%B0%20%EB%8B%A4%EC%9D%8C%20%22file_text2%22%EB%A5%BC%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%EC%97%90%20%EB%A1%9C%EB%93%9C%ED%95%A9%EB%8B%88%EB%8B%A4.%20%EA%B7%B8%EB%9F%B0%20%EB%8B%A4%EC%9D%8C%20%22contains%22%EC%99%80%20%EA%B2%B0%ED%95%A9%EB%90%9C%20%22get%20rows%20where%22%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8A%B9%EC%A0%95%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%B4%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EC%9B%90%EB%B3%B8%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EC%A4%84%20%EB%B2%88%ED%98%B8%EB%A5%BC%20%EC%B0%BE%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%22get%20rows%20where%22%EC%99%80%20%EB%8F%99%EC%9D%BC%ED%95%98%EC%A7%80%EB%A7%8C%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%EB%B0%B0%EC%97%B4%EC%97%90%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%8A%94%20%ED%95%A8%EC%88%98%EA%B0%80%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%EC%9D%B4%EB%A0%87%EA%B2%8C%20%ED%95%98%EB%A9%B4%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%EC%97%90%20%EB%A1%9C%EB%93%9C%ED%95%A0%20%EB%B6%80%EB%B6%84%EC%9D%84%20%EA%B1%B4%EB%84%88%EB%9B%B8%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Efile_text1%20%3D%20load%20text%20file(%20%22example.txt%22%20)%3B%0Afile_text2%20%3D%20words(file_text1%20%2C%20%22%5C!n%22)%3B%0Adt0%20%3D%20new%20table(%22file_dt%22%2C%20new%20column(%22file_content%22%2C%20character)%20)%3B%0A%20dt0%3Afile_content%20%26lt%3B%26lt%3B%20set%20values(file_text2)%3B%0A%0Apass_qty_row_array%20%3D%20dt0%20%26lt%3B%26lt%3B%20get%20rows%20where(contains(%20%3Afile_content%2C%20%22Pass%22)%20)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-499621%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CLINGO-LABEL%3E%EA%B3%A0%EA%B8%89%20%ED%86%B5%EA%B3%84%20%EB%AA%A8%EB%8D%B8%EB%A7%81%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%EC%9E%90%EB%8F%99%ED%99%94%20%EB%B0%8F%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8C%85%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%EC%86%8C%EB%B9%84%EC%9E%90%20%EB%B0%8F%20%EC%8B%9C%EC%9E%A5%20%EC%A1%B0%EC%82%AC%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%EC%BD%98%ED%85%90%EC%B8%A0%20%EA%B5%AC%EC%84%B1%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%98%BC%ED%95%A9%20%EB%B0%8F%20%EC%A0%95%EB%A6%AC%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%EB%8C%80%EB%9F%89%20%EB%A7%9E%EC%B6%A4%ED%99%94%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%ED%92%88%EC%A7%88%20%EB%B0%8F%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%20%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-504688%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%20%EC%9D%BD%EA%B8%B0%2C%20%ED%8A%B9%EC%A0%95%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%B4%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EC%A4%84%20%EC%B0%BE%EA%B8%B0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-504688%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%EB%AA%A8%EB%91%90%EC%99%80%20%ED%8A%B9%ED%9E%88%20jthi%EC%97%90%EA%B2%8C%20%EA%B0%90%EC%82%AC%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EN%EA%B0%9C%EC%9D%98%20%ED%95%AD%EB%AA%A9(file_text2)%EC%97%90%EC%84%9C%20for-loop%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EA%B2%83%EC%9D%B4%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EA%B2%83%EB%B3%B4%EB%8B%A4%20%EB%B9%A0%EB%A5%B4%EB%8B%A4%EB%8A%94%20%EA%B2%83%EC%9D%84%20%ED%99%95%EC%9D%B8%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%EA%B7%B8%EB%9F%B0%20%EB%8B%A4%EC%9D%8C%20%22For%20Each%22%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20jthi%EC%9D%98%20%EB%B0%A9%EB%B2%95%EC%9D%84%20%EB%B3%B4%EC%95%98%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%EC%8B%9C%EA%B0%84%20%EC%B8%A1%EC%A0%95%EC%97%90%EC%84%9C%20%ED%9B%A8%EC%94%AC%20%EB%8D%94%20%EB%B9%A0%EB%A6%85%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-499843%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%20%EC%9D%BD%EA%B8%B0%2C%20%ED%8A%B9%EC%A0%95%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%B4%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EC%A4%84%20%EC%B0%BE%EA%B8%B0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-499843%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%EC%9D%B4%EC%99%80%20%EA%B0%99%EC%9D%80%20%EA%B2%BD%EC%9A%B0%EC%97%90%20%EB%8F%84%EC%9B%80%EC%9D%B4%20%EB%90%A0%20%EC%88%98%20%EC%9E%88%EB%8A%94%20For%20Each%2C%20Filter%20Each(%EB%B0%8F%20Transform%20Each)%EB%8F%84%20%EC%9E%88%EC%9C%BC%EB%A9%B0%20%EC%83%81%EB%8B%B9%ED%9E%88%20%EB%B9%A0%EB%A6%85%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20Default%20To%20Here(1)%3B%0A%0Afile_txt%20%3D%20Load%20Text%20File(%22%24SAMPLE_IMPORT_DATA%2FAnimals.txt%22)%3B%0Afile_list%20%3D%20words(file_txt%2C%20%22%5C!n%22)%3B%0Asearch_word%20%3D%20%22fall%22%3B%0A%0Apass_qty_row_array%20%3D%20%5B%5D%3B%0AFor%20Each(%7Bline%2C%20idx%7D%2C%20file_text2%2C%0A%20If(Contains(line%2C%20search_word)%2C%0A%20%20Insert%20Into(pass_qty_row_array%2C%20idx)%3B%0A%20)%3B%0A)%3B%0Ashow(pass_qty_row_array)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-499767%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%20%EC%9D%BD%EA%B8%B0%2C%20%ED%8A%B9%EC%A0%95%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%B4%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EC%A4%84%20%EC%B0%BE%EA%B8%B0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-499767%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%EA%B0%9C%EC%9D%B8%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%9D%B4%EB%9F%B0%20%EB%AC%B8%EC%A0%9C%EB%A5%BC%20%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20Map()%2C%20Filter()%2C%20Reduce()%20%ED%95%A8%EC%88%98%EB%A5%BC%20%EB%A7%8C%EB%93%A4%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%EB%8B%A4%EC%9D%8C%EC%9D%80%20Map()%20%ED%95%A8%EC%88%98%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EC%98%88%EC%9D%B4%EB%A9%B0%20%EB%82%B4%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%97%90%EC%84%9C%EB%8A%94%20%EA%B2%80%EC%83%89%EC%9D%84%20%EC%88%98%ED%96%89%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%84%20%EB%A7%8C%EB%93%9C%EB%8A%94%20%EA%B2%83%EB%B3%B4%EB%8B%A4%20%EB%8C%80%EB%9E%B5%2050%25%20-%2060%25%20%EB%8D%94%20%EB%B9%A0%EB%A6%85%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%EB%8B%A4%EC%9D%8C%EC%9D%80%20map%20%ED%95%A8%EC%88%98%EC%9E%85%EB%8B%88%EB%8B%A4(%EB%AA%85%EC%8B%9C%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%A0%84%EC%97%AD%ED%99%94%EB%90%A8).%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%3A%3Amap%20%3D%20Function(%20%7Binputs%20%2F*%20list%2C%20function%20*%2F%20%7D%2C%0A%20%2F*%20uses%20a%20single%20underscore%20_%20as%20the%20wild-card%20*%2F%0A%20%7B__i__%2C%20__result__%2C%20__list__%2C%20_%2C%20__%2C%20__keys__%7D%2C%0A%20__list__%20%3D%20Eval(%20Arg(%20inputs%2C%201%20)%20)%3B%0A%20If(%20Is%20List(%20__list__%20)%2C%0A%20%20__result__%20%3D%20%7B%7D%3B%0A%20%20Eval(%0A%20%20%20Substitute(%0A%20%20%20%20Expr(%0A%20%20%20%20%20For(%20__i__%20%3D%201%2C%20__i__%20%26lt%3B%3D%20__N__%2C%20__i__%2B%2B%2C%0A%20%20%20%20%20%20_%20%3D%20__list__%5B__i__%5D%3B%0A%20%20%20%20%20%20__result__%5B__i__%5D%20%3D%20__function__%0A%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%2C%0A%20%20%20%20Expr(%20__N__%20)%2C%20N%20Items(%20__list__%20)%2C%0A%20%20%20%20Expr(%20__function__%20)%2C%20Arg(%20inputs%2C%202%20)%0A%20%20%20)%3B%0A%20%20)%3B%0A%20%2C%0A%20%20Is%20Associative%20Array(%20__list__%20)%2C%0A%20%20__result__%20%3D%20%5B%3D%26gt%3B%5D%3B%0A%20%20__keys__%20%3D%20__list__%20%26lt%3B%26lt%3B%20Get%20Keys%3B%0A%20%20Eval(%0A%20%20%20Substitute(%0A%20%20%20%20Expr(%0A%20%20%20%20%20For(%20__i__%20%3D%201%2C%20__i__%20%26lt%3B%3D%20__N__%2C%20__i__%2B%2B%2C%0A%20%20%20%20%20%20__%20%3D%20__keys__%5B__i__%5D%3B%0A%20%20%20%20%20%20_%20%3D%20__list__%5B__%5D%3B%0A%20%20%20%20%20%20__result__%5B__%5D%20%3D%20__function__%0A%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%2C%0A%20%20%20%20Expr(%20__N__%20)%2C%20N%20Items(%20__keys__%20)%2C%0A%20%20%20%20Expr(%20__function__%20)%2C%20Arg(%20inputs%2C%202%20)%0A%20%20%20)%0A%20%20)%0A%20)%3B%0A%20__result__%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%EB%8B%A4%EC%9D%8C%EC%9D%80%20%ED%85%8C%EC%9D%B4%EB%B8%94%EA%B3%BC%20%EB%A7%B5%20%EA%B8%B0%EB%8A%A5%EC%9D%84%20%EB%B9%84%EA%B5%90%ED%95%9C%20%EA%B2%83%EC%9E%85%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20Default%20To%20Here(%201%20)%3B%0Afilename%20%3D%20Convert%20File%20Path(%20%22%24SAMPLE_IMPORT_DATA%2FUN%20Malaria%202009.csv%22%2C%20absolute%2C%20windows%20)%3B%0Aresult%20%3D%20Load%20Text%20File(%20filename%20)%3B%0AShow(%20result%20)%3B%0A%0Afile_text2%20%3D%20Words(%20result%2C%20%22%5C!N%22%20)%3B%0AN%20%3D%2010000%3B%0Aword%20%3D%20%22malaria%22%3B%0As%20%3D%20HP%20Time()%3B%0ASummation(%20i%20%3D%201%2C%20N%2C%0A%20dt0%20%3D%20New%20Table(%20%22file_dt%22%2C%20New%20Column(%20%22file_content%22%2C%20character%20)%2C%20Private%20)%3B%0A%20dt0%3Afile_content%20%26lt%3B%26lt%3B%20set%20values(%20file_text2%20)%3B%0A%0A%20pass_qty_row_array%201%20%3D%20dt0%20%26lt%3B%26lt%3B%20get%20rows%20where(%20Contains(%20%3Afile_content%2C%20word%20)%20)%3B%0A%20close(%20dt0%2C%20No%20Save%20)%3B%0A%200%0A)%3B%0AShow(%20time%201%20%3D%20(HP%20Time()%20-%20s)%20%2F%201000000%20)%3B%0A%0As%20%3D%20HP%20Time()%3B%0ASummation(%20i%20%3D%201%2C%20N%2C%0A%20pass_qty_row_array%202%20%3D%20loc(%20Matrix(%20%3A%3Amap(%7B%20file_text2%2C%20Contains(%20_%2C%20word%20)%20%7D)%20)%20)%3B%0A%200%0A)%3B%0AShow(%20time%202%20%3D%20(HP%20Time()%20-%20s)%20%2F%201000000%20)%3B%3CBR%20%2F%3E%3CBR%20%2F%3EShow(%20All(%20pass_qty_row_array%201%20%3D%3D%20pass_qty_row_array%202%20)%20)%3B%0A%0A1%20-%20(time%201%20-%20time%202)%20%2F%20time%201%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%EB%A7%B5%20%EA%B8%B0%EB%8A%A5%EC%9D%84%20%EC%A0%95%EC%9D%98%ED%95%98%EB%8A%94%20%EA%B2%83%20%EC%99%B8%EC%97%90%EB%8F%84%20%EC%9D%BC%EB%B0%98%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%9D%B4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EA%B2%83%EC%9D%B4%20%EB%8B%A4%EB%A5%B8%20%EC%86%94%EB%A3%A8%EC%85%98%EB%B3%B4%EB%8B%A4%20%EC%BD%94%EB%93%9C%EC%97%90%EC%84%9C%20%ED%9B%A8%EC%94%AC%20%EA%B9%94%EB%81%94%ED%95%A9%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-499732%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%20%EC%9D%BD%EA%B8%B0%2C%20%ED%8A%B9%EC%A0%95%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%B4%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EC%A4%84%20%EC%B0%BE%EA%B8%B0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-499732%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%EC%9D%B4%EA%B2%83%EC%9D%84%20%EC%B2%98%EB%A6%AC%ED%95%98%EB%8A%94%20%EB%98%90%20%EB%8B%A4%EB%A5%B8%20%EB%B0%A9%EB%B2%95%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%EB%8D%94%20%EB%B9%A0%EB%A5%BC%20%EC%88%98%EB%8F%84%20%EC%9E%88%EA%B3%A0%20%EB%8D%94%20%EB%8A%90%EB%A6%B4%20%EC%88%98%EB%8F%84%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.....%EB%AA%A8%EB%A5%B4%EA%B2%A0%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Enames%20default%20to%20here(1)%3B%0Adt0%20%3D%20Open(%0A%20%22example.txt%22%2C%0A%20columns(%20New%20Column(%20%22Line%22%2C%20Character%2C%20%22Nominal%22%20)%20)%2C%0A%20Import%20Settings(%0A%20%20End%20Of%20Line(%20CRLF%2C%20CR%2C%20LF%20)%2C%0A%20%20End%20Of%20Field(%20CSV(%200%20)%20)%2C%0A%20%20Strip%20Quotes(%201%20)%2C%0A%20%20Use%20Apostrophe%20as%20Quotation%20Mark(%200%20)%2C%0A%20%20Use%20Regional%20Settings(%200%20)%2C%0A%20%20Scan%20Whole%20File(%201%20)%2C%0A%20%20Treat%20empty%20columns%20as%20numeric(%200%20)%2C%0A%20%20CompressNumericColumns(%200%20)%2C%0A%20%20CompressCharacterColumns(%200%20)%2C%0A%20%20CompressAllowListCheck(%200%20)%2C%0A%20%20Labels(%200%20)%2C%0A%20%20Column%20Names%20Start(%201%20)%2C%0A%20%20Data%20Starts(%201%20)%2C%0A%20%20Lines%20To%20Read(%20%22All%22%20)%2C%0A%20%20Year%20Rule(%20%2220xx%22%20)%0A%20)%0A)%3B%0A%0Apass_qty_row_array%20%3D%20dt0%20%26lt%3B%26lt%3B%20get%20rows%20where(contains(%20%3Afile_content%2C%20%22Pass%22)%20)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
LaserGuy
Level II

Read Text File, Find Lines Containing a Certain String

Hello Everyone,

 

Here is a script I have that works. I want to know if there is a better way to do the same thing.

 

I first use "load text file" to read a text file into the string variable "file_text1".

 

Next, I use "words" with "\!n" to separate the lines and load them into the string array "file_text2".

 

Next, I then load the "file_text2" into a data table. I then use the "get rows where" combined with "contains" to find the line number in the original text file that contains a certain string.

 

Is there a function equivalent to "get rows where" but usable for string arrays? This way, I can skip the portion to load into data table.

 

file_text1 = load text file( "example.txt" );
file_text2 = words(file_text1 , "\!n");
dt0 = new table("file_dt", new column("file_content", character) );
	dt0:file_content << set values(file_text2);

pass_qty_row_array = dt0 << get rows where(contains( :file_content, "Pass") );
1 ACCEPTED SOLUTION

Accepted Solutions
jthi
Super User

Re: Read Text File, Find Lines Containing a Certain String

There is also For Each, Filter Each (and Transform Each) which can help with cases like this and it should be fairly fast.

 

Names Default To Here(1);

file_txt = Load Text File("$SAMPLE_IMPORT_DATA/Animals.txt");
file_list = words(file_txt, "\!n");
search_word = "fall";

pass_qty_row_array = [];
For Each({line, idx}, file_text2,
	If(Contains(line, search_word),
		Insert Into(pass_qty_row_array, idx);
	);
);
show(pass_qty_row_array);

 

 

-Jarmo

View solution in original post

4 REPLIES 4
txnelson
Super User

Re: Read Text File, Find Lines Containing a Certain String

Here is another way to handle this.  It may be faster, or it may be slower.....I don't know.

names default to here(1);
dt0 = Open(
	"example.txt",
	columns( New Column( "Line", Character, "Nominal" ) ),
	Import Settings(
		End Of Line( CRLF, CR, LF ),
		End Of Field( CSV( 0 ) ),
		Strip Quotes( 1 ),
		Use Apostrophe as Quotation Mark( 0 ),
		Use Regional Settings( 0 ),
		Scan Whole File( 1 ),
		Treat empty columns as numeric( 0 ),
		CompressNumericColumns( 0 ),
		CompressCharacterColumns( 0 ),
		CompressAllowListCheck( 0 ),
		Labels( 0 ),
		Column Names Start( 1 ),
		Data Starts( 1 ),
		Lines To Read( "All" ),
		Year Rule( "20xx" )
	)
);

pass_qty_row_array = dt0 << get rows where(contains( :file_content, "Pass") );
Jim
ErraticAttack
Level VI

Re: Read Text File, Find Lines Containing a Certain String

Personally, I've created a Map(), Filter(), and Reduce() function for problems such as this.  Here is an example using the Map() function and on my system is is roughly 50% - 60% faster than creating a table to do the search.

 

Here is the map function (explicitly globalized):

::map = Function( {inputs /* list, function */ },
	/* uses a single underscore _ as the wild-card */
	{__i__, __result__, __list__, _, __, __keys__},
	__list__ = Eval( Arg( inputs, 1 ) );
	If( Is List( __list__ ),
		__result__ = {};
		Eval(
			Substitute(
				Expr(
					For( __i__ = 1, __i__ <= __N__, __i__++,
						_ = __list__[__i__];
						__result__[__i__] = __function__
					)
				)
			,
				Expr( __N__ ), N Items( __list__ ),
				Expr( __function__ ), Arg( inputs, 2 )
			);
		);
	,
		Is Associative Array( __list__ ),
		__result__ = [=>];
		__keys__ = __list__ << Get Keys;
		Eval(
			Substitute(
				Expr(
					For( __i__ = 1, __i__ <= __N__, __i__++,
						__ = __keys__[__i__];
						_ = __list__[__];
						__result__[__] = __function__
					)
				)
			,
				Expr( __N__ ), N Items( __keys__ ),
				Expr( __function__ ), Arg( inputs, 2 )
			)
		)
	);
	__result__
);

and here is a comparison of using a table vs. the map function:

Names Default To Here( 1 );
filename = Convert File Path( "$SAMPLE_IMPORT_DATA/UN Malaria 2009.csv", absolute, windows );
result = Load Text File( filename );
Show( result );

file_text2 = Words( result, "\!N" );
N = 10000;
word = "malaria";
s = HP Time();
Summation( i = 1, N,
	dt0 = New Table( "file_dt", New Column( "file_content", character ), Private );
	dt0:file_content << set values( file_text2 );

	pass_qty_row_array 1 = dt0 << get rows where( Contains( :file_content, word ) );
	close( dt0, No Save );
	0
);
Show( time 1 = (HP Time() - s) / 1000000 );

s = HP Time();
Summation( i = 1, N,
	pass_qty_row_array 2 = loc( Matrix( ::map({ file_text2, Contains( _, word ) }) ) );
	0
);
Show( time 2 = (HP Time() - s) / 1000000 );

Show( All( pass_qty_row_array 1 == pass_qty_row_array 2 ) ); 1 - (time 1 - time 2) / time 1

Aside from defining the map function, using it is usually much cleaner looking in code than any other solution.

Jordan
jthi
Super User

Re: Read Text File, Find Lines Containing a Certain String

There is also For Each, Filter Each (and Transform Each) which can help with cases like this and it should be fairly fast.

 

Names Default To Here(1);

file_txt = Load Text File("$SAMPLE_IMPORT_DATA/Animals.txt");
file_list = words(file_txt, "\!n");
search_word = "fall";

pass_qty_row_array = [];
For Each({line, idx}, file_text2,
	If(Contains(line, search_word),
		Insert Into(pass_qty_row_array, idx);
	);
);
show(pass_qty_row_array);

 

 

-Jarmo
LaserGuy
Level II

Re: Read Text File, Find Lines Containing a Certain String

Thank you everyone and especially jthi.

 

I have determined that using a for-loop on N Items(file_text2) was faster than using a data table. And then I saw jthi's method using "For Each", which from time measurements is even faster.

 

Recommended Articles