I 이름은 다음과 R에 데이터 프레임을 만들었 :'|'제거 객체 이름에서?
table_file1_C.txt|file2_C.txt
이 이름에서 실행되는 프로그램에 의해 생성 된 단일 .txt 파일을 참조하여, 할당() 함수에 의해 생성되는 명령 행. 다음은이 객체를 만든 루프의 샘플입니다.
assign(x=paste("table_",
dir(file.dir, pattern="\\.txt$")[i],
sep=''),
value=tmpTables[[i]])#tmpTables holds the data I'm manipulating, as read in from readHTMLtable
문제점은 작성한 후에이 객체를 참조 할 수 없다는 것입니다.
>table_file1_C.txt|file2_C.txt
Error: object 'file2_C.txt' not found
나는 R이 '|' 개체 이름의 일부가 아닌 명령으로 읽습니다. 개체 이름의 일부로 이미 받아 들여졌지만.
그래서, | 객체의 이름에서. ,
[1] ".t.a.b.l.e._.f.i.l.e.1...t.x.t.|.f.i.l.e.2...t.x.t."
당신이 볼 수 있듯이 :
assign(x=paste("table_",#creating the name of the object
gsub(x=dir(file.dir, pattern="\\.txt$")[i],
pattern="|",
replacement="."),#need to remove the | characters!!
sep=''),
value=tmpTables[[i]])
그러나,이 출력이 같은 것을 제공 :이 같은 것을 사용하여 할당() 함수에 포함 GSUB()로이 작업을 수행 할 계획 이름이 엉망이되었고, | 실제로 제거되지 않았습니다.
| 제거 할 방법을 찾아야합니다. 이름에서, 그래서 내가 만든 개체를 처리 할 수 있습니다. 또는 처음에는 이름에 포함되지 않도록합니다. 데이터를 생성하는 데 사용한 프로그램의 출력을 수정할 수 없기 때문에 R 내에서만이 작업을 수행 할 수 있습니다.
의미가 있습니까? 더 많은 정보가 필요한지 알려주십시오. 이것을 읽어 주셔서 감사합니다.
로 이동합니다. 종종 글로벌 환경에서 별도의 객체를 만들 필요가 없습니다. 그들이 관련되어 있으면 목록에 보관하십시오. 'tmpTables'리스트에 그걸 보관 해 두지 않으시겠습니까? 그러나 도움이 더 필요하면 샘플을 재현 할 수 있어야합니다. 동일한 코드를 실행하여 동일한 결과를 얻을 수 없습니다.그러나 만약 당신이'assign ("a | b", 4)'를한다면, 당신은'\'a \ b \''로 값을 얻을 수 있습니다. – MrFlick
고마워요, 새로운 객체를 만들 필요가없는 구현을하고 있습니다. – user3658874