2016-08-25 4 views
0

데이터 프레임 mydf가 있는데 이것을 분할하여 mydf$'1' mydf$'2'...mydf$'n'과 같은 데이터 프레임 수를 얻습니다. 나는 분할에서 약 35 데이터 프레임이 있기 때문에 ... 등등R - 연속적으로 데이터 프레임에 함수 적용

resultdf1 <- myfunc(mydf$'1') 
resultdf2 <- myfunc(mydf$'2') 
..... 
resultdfn <- myfunc(mydf$'n') 

과 같은 resultdf 얻기 위해 이러한 데이터 프레임 내 함수를 적용하고 싶습니다. 각 프레임 이름과 결과에 대해 수동으로 작성하지 않고 어떻게 노력을 줄일 수 있습니까?

lapply 시도했지만 제대로 작동하지 않았습니다. 도움이 될 것입니다. 데이터 프레임에 split를 호출

감사

+1

올바르게 작동하지 않은 것은 무엇입니까? 시도한 내용과 결과를 보여주십시오. –

+1

순차적으로 명명 된 변수가 없습니다 - [데이터 프레임 목록 사용] (http://stackoverflow.com/a/24376207/903061). – Gregor

답변

3

당신에게 작은 데이터 프레임의 목록을 제공해야합니다. 따라서이 분할 목록에서 lapply으로 전화하는 것이 좋습니다.

mydf.split <- split(mydf, mydf$col) 
list.result <- lapply(mydf.split, function(x) { /* do something */ }) 

위의 내용은 각 노드가 사용자의 기능 결과를 포함하는 다른 목록을 생성합니다. 대신 벡터를 가져 오려면 sapply을 사용할 수 있습니다. 예를 들어 각 분할 데이터 프레임에서 행 수를 원할 경우

mydf.counts <- sapply(mydf.split, function(x) nrow(x)) 
+0

그리고 그 후에 당신은 목록에서 dplyr의 bind.rows를 사용하여 1 데이터 프레임을 얻을 수 있습니다. –

+1

@ M.Siwik 만약 당신이'dplyr'을 사용한다면, 왜 당신은 처음부터 갈라지게 될까요? 그냥'group_by' ... – Gregor

+1

때때로 나를 위해 group_by를 사용하는 것보다 데이터 프레임 목록에서 lapply 함수로 뭔가를 쓰는 것이 더 쉽습니다;) –

관련 문제