2012-06-21 3 views
1

빈 데이터 프레임부터 다음과 같이 데이터 프레임을 채울 필요가 있습니다. for 루프는 각 반복마다 고정 된 수의 값을 생성하며 새 열을 추가해야합니다 그 목록에있는 값을 가지고, 컬럼에 고유 한 이름 인 col_i (여기서 i는 루프의 i 번째 반복)를 제공합니다.값 목록에서 데이터 프레임에 열 추가

어떻게하면 간단할까요?

+3

아래에 명시된 바와 같이, 'cbind' 좋은 출발점이다. 또한 일반적으로 빈 데이터 구조로 시작하여 물건을 추가하는 것은 말 그대로 R에서 일을 수행하는 최악의 방법 중 하나입니다. [R Inferno] Circle 2 (http : /www.burns-stat.com/pages/Tutor/R_inferno.pdf). – joran

+0

@ user1030497 안녕하세요. 아래의 답변 중 하나가 문제를 해결 한 경우 답변 옆에있는 체크 표시를 클릭하여 문제를 해결하십시오. –

답변

5

에 구분이 미리 할당 된 목록에서 부품을 저장하는 것입니다 dataframe를 구축하는 가장 효율적인 방법을 적용 할 수 있습니다, 다음 나중에 함께 넣어. 예를 들어

:

num.iters <- 10 
l <- vector('list', num.iters) 
for (i in 1:num.iters) { 
    l[[i]] <- rnorm(3)      # the column data 
    names(l)[i] <- paste('Col', i, sep='.') # the column name 
} 
do.call(cbind, l) # ... if your cols are the same datatype and you want a matrix 
data.frame(l)  # otherwise 
3

?cbind의 문제점은 무엇입니까?

The functions cbind and rbind are S3 generic, with methods for data frames. 
The data frame method will be used if at least one argument is a data frame 
and the rest are vectors or matrices. 

?colnames

도 data.frames

관련 문제