할 방법이 있습니까?크기 M x N의 데이터 프레임을 만드는 방법 R
나는이 함께 붙어 :
m <- 10 # nof row
n <- 5 # nof column
# We will fill each cell with '0'
all <-c()
for (i in 1:m) {
row_i <- c(rep(0,n))
all <- c(all,row_i)
}
어느 단지 출력으로 1 개 행을 만듭니다.
할 방법이 있습니까?크기 M x N의 데이터 프레임을 만드는 방법 R
나는이 함께 붙어 :
m <- 10 # nof row
n <- 5 # nof column
# We will fill each cell with '0'
all <-c()
for (i in 1:m) {
row_i <- c(rep(0,n))
all <- c(all,row_i)
}
어느 단지 출력으로 1 개 행을 만듭니다.
왜 매트릭스를 사용하지 않습니까? data.frames
은 다양한 유형의 열을 저장하기위한 것입니다. 당신이 정말 data.frame
를 원하는 경우
그래서,
m = 10
n = 5
mat = matrix(0, nrow = m, ncol = n)
1로 강제 - 열 이름은 단순히 기본값이됩니다 :
dat = as.data.frame(mat)
names(dat)
[1] "V1" "V2" "V3" "V4" "V5"
당신의 접근 방식의 문제는 단순히 추가이다 원하는 값을 무시하고 차례대로 값을 지정하십시오. 이렇게 할 수는 있지만, 데이터를 키우는 것은 좋지 않습니다. 위와 같이 모든 것을 미리 할당하는 것이 좋습니다. 또한, 어쨌든이 결과는 매트릭스로 생각됩니다.
경고 : 코드가 잘못되었습니다.
m <- 10 # nof row
n <- 5 # nof column
all <- NULL
for (i in 1:m) {
row_i <- c(rep(0,n))
all <- rbind(all,row_i)
}
이렇게하면 data.frame이 0으로 채워집니다.
as.data.frame(lapply(structure(.Data=1:N,.Names=1:N),function(x) numeric(M)))
mdsummer 솔루션은 좀 더 우아하지만 솔루션을 확장하여 다른 것을 생성 할 수 있습니다 열의 클래스 –
'nof_range'란 무엇입니까? – mdsumner
@mdsumner : 죄송합니다. 수정했습니다. – neversaint
아래의 답이 가장 좋지만'rbind'를'c '가 아닌'all <- rbind (all, row_i)'를 사용하면 코드가 작동합니다. –