要创建空数据框,可以将所需行数和列数传递给以下函数:
create_empty_table <- function(num_rows, num_cols) {
frame <- data.frame(matrix(NA, nrow = num_rows, ncol = num_cols))
return(frame)
}
为了创建一个
指定每一列的类的空框架,只需将所需数据类型的向量传递到以下函数中:
create_empty_table <- function(num_rows, num_cols, type_vec) {
frame <- data.frame(matrix(NA, nrow = num_rows, ncol = num_cols))
for(i in 1:ncol(frame)) {
print(type_vec[i])
if(type_vec[i] == 'numeric') {frame[,i] <- as.numeric(frame[,i])}
if(type_vec[i] == 'character') {frame[,i] <- as.character(frame[,i])}
if(type_vec[i] == 'logical') {frame[,i] <- as.logical(frame[,i])}
if(type_vec[i] == 'factor') {frame[,i] <- as.factor(frame[,i])}
}
return(frame)
}
使用方法如下:
df <- create_empty_table(3, 3, c('character','logical','numeric'))
这将会产生:
X1 X2 X3
1 <NA> NA NA
2 <NA> NA NA
3 <NA> NA NA
要确认你的选择,请运行以下命令:
lapply(df, class)
$X1
[1] "character"
$X2
[1] "logical"
$X3
[1] "numeric"
data.frame
的列有类型,所以如果你想初始化一个data.frame
,你必须决定列的类型。 - digEmAlldata.frame(Doubles=rep(as.double(NA),numberOfRow), Ints=rep(as.integer(NA),numberOfRow))
。 - digEmAll