2016-08-31 3 views
0

나는 이것이 간단하다고 확신하지만 해결책을 찾지 못했습니다. 나는 dataframe를 만드는 기능 data.frame에 문자열을 방향으로 사용하여 data.frame을 만드는 방법은 무엇입니까?

Data 
[1] "as.numeric(dataset$a),as.numeric(dataset1$a)" 

데이터

라는 내 캐릭터 라인을 넣어합니다. 나는 시도한다 :

DB<-data.frame(Data) 

그러나 출력은 나의 끈이다. DB를 호출하면 결과는 다음과 같습니다.

Data 
1 as.numeric(dataset$a),as.numeric(dataset1$a) 

데이터 세트 $ a, dataset1 $ a의 값이 아닙니다. 감사합니다.

+0

왜 그렇게할까요? –

+0

나는 데이터 프레임을 변경 한 다음 문자열 (예 : dataset $ a에서 dataset5 $ a까지)을 여러 번 변경해야하므로 dglInput을 사용하여 문자열에 넣을 다른 이름의 부분을 선택하고 데이터 프레임을 만들도록 호출합니다. 나의 영어로 유감스럽게 생각해서, 나는 더 잘 설명하기가 어렵다. –

+0

먼저 문제를 소개하고 솔루션에 대한 도움을 받으십시오. 지금하고있는 방식이 잘못되었습니다. 'eval (parse (...' –

답변

1

분명히하고 싶은 일은 무엇이든 할 수있는 더 좋은 방법이 있습니다. 그러나 코드처럼 실제 문자열을 실행하려면 eval(parse(text = string)) 구조를 사용할 수 있습니다. 그러나 일반적으로 코드를 작성하는 것은 좋지 않습니다. 그럼에도 불구하고 해결책은 다음과 같습니다.

# a test dataframe 
df = data.frame(a = 1:10, b = 11:20) 
# string with code to run 
string = "as.numeric(df$a),as.numeric(df$b)" 
# split on , since those are separate lines of code 
str = unlist(strsplit(string, ',')) 
# put it in a dataframe 
df2 = data.frame(sapply(str, function(string) eval(parse(text = string)))) 
+0

감사합니다! 완벽하게 작동합니다. –

관련 문제