如何为R语言空数据框指定列名与对应列的数据类型
R 中的矩阵要求所有元素必须为同一数据类型,因此你无法直接通过 matrix() 函数生成包含多类数据类型的矩阵,自然也没法直接通过「先建空矩阵再转数据框」的方式给不同列指定不同的数据类型。
你之前生成的空矩阵默认所有列为逻辑型,是因为matrix()函数的data参数默认值是logical(0)。如果你的使用场景允许所有列类型统一,可以在创建矩阵时通过data参数指定统一类型,示例如下:
colonne = c("col4", "col5", "col6") # 生成全为数值型的空矩阵再转数据框 dataFrameMio2 = data.frame(matrix(data = numeric(0), nrow = 0, ncol = length(colonne))) colnames(dataFrameMio2) = colonne # 验证类型 class(dataFrameMio2$col4) # 输出 "numeric"
如果需要统一为字符型,把data参数的值替换为character(0)即可。
如果你需要给不同列指定不同类型,又不想手动逐列赋值,可以用批量映射的方案实现,示例如下:
# 定义列名与对应数据类型的映射关系 col_map <- list( col4 = "character", col5 = "numeric", col6 = "integer" ) # 批量生成对应类型的空向量,拼接为数据框 dataFrameMio3 <- structure( lapply(col_map, function(type) vector(mode = type, length = 0)), class = "data.frame", row.names = integer(0) ) # 验证各列类型 sapply(dataFrameMio3, class) # 输出 col4: character, col5: numeric, col6: integer
内容的提问来源于stack exchange,提问作者Gennaro Arguzzi
相关产品推荐
相关产品推荐

