2017-11-08 1 views
1

변수 이름을 함수의 문자열로 인용하고 싶지만이를 구현할 수 없습니다.R 함수에서 변수 이름을 얻는 방법

read_func = function(sheet_name){ 

    sheet_name.df<- read_xlsx("abc.xlsx", sheet ="sheet_name")) 

    return(sheet_name.df) 
} 

:

예를 들어, 하나의 Excel에서, 나는 내가 함수를 작성하려면, 대신 내가 다음 줄 4 번을 사용해야

sales.df<- read_xlsx("abc.xlsx", sheet ="sales") 
profit.df<- read_xlsx("abc.xlsx", sheet ="profit") 
revenue.df<-read_xlsx("abc.xlsx", sheet ="revenue") 
budget.df<- read_xlsx("abc.xlsx", sheet ="budget") 

4 개 워크 시트를 함수 호출

read_func(sales) 

불행히도, 작동하지 않습니다. sheet_name은 동적으로 갱신되지 않습니다.

친절한 도움에 미리 감사드립니다.

+3

' "sheet_name"'은 문자열이며 변경되지 않습니다. 'sheet_name'은 변수이며, 사용자는''sales "''또는''profit"'과 같은 문자열을 설정합니다. 'sheet_name'을 따옴표없이 함수 옆에 사용하십시오. 문자열 인자'read_fun ("sales")'로 함수를 호출하십시오. – Gregor

답변

1

readxl 패키지에는 파일의 모든 시트를 읽을 수있는 excel_sheets() 기능이있어 동일한 작업을 수행하려면 lapply과 함께 사용할 수 있습니다.

library(readxl) 
lapply(excel_sheets("abc.xlsx"), read_excel, path = "abc.xlsx") 

더 자세히 읽을 수 있도록 tidyverse의 일부입니다. there.

+0

Hi Seeellayewhy,이 lapply 함수는 정상적으로 작동합니다. 그러나 또 하나의 질문은, 어떻게 자동으로 목록을 다른 데이터 프레임으로 분할하고 해당 이름을 할당 할 수 있습니까? – bihappywater

관련 문제