假设我有以下列表:
result
[[1]]
[1] NA 104 67 NA 107 71 94 NA NA 64
[[2]]
[1] NA 381 NA NA 412 NA 287 NA NA NA
[[3]]
[1] NA 38 NA NA NA NA NA NA NA NA
使用dput()
:
list(c(NA, 104, 67, NA, 107, 71, 94, NA, NA, 64), c(NA, 381,
NA, NA, 412, NA, 287, NA, NA, NA), c(NA, 38, NA, NA, NA, NA,
NA, NA, NA, NA))
<小时/> 现在我想将此列表转换为
dataframe
:
df <- as.data.frame(do.call(cbind, result),
stringsAsFactors = FALSE,
col.names = c('speed', 'distance', 'degrees'))
不幸的是,这不包括输出中的列名(为什么?):
df
V1 V2 V3
1 NA NA NA
2 104 381 38
3 67 NA NA
4 NA NA NA
5 107 412 NA
6 71 NA NA
7 94 287 NA
8 NA NA NA
9 NA NA NA
10 64 NA NA
答案 0 :(得分:2)
结果列表没有名称,给它命名然后转换,不需要 cbind :
result <- list(c(NA, 104, 67, NA, 107, 71, 94, NA, NA, 64),
c(NA, 381, NA, NA, 412, NA, 287, NA, NA, NA),
c(NA, 38, NA, NA, NA, NA, NA, NA, NA, NA))
df1 <- data.frame(setNames(result, c("speed", "distance", "degrees")))
head(df1)
# speed distance degrees
# 1 NA NA NA
# 2 104 381 38
# 3 67 NA NA
# 4 NA NA NA
# 5 107 412 NA
# 6 71 NA NA
答案 1 :(得分:1)
在ALTER TABLE `booking`
ADD `feedback_id` INT(11) UNSIGNED,
ADD INDEX `b_feedback_fk_idx` (`feedback_id` ASC),
ADD CONSTRAINT `feedback_fk`
FOREIGN KEY (`feedback_id`)
REFERENCES feedback(`id`)
帮助中,似乎该函数在应用于矩阵时不使用as.data.frame
参数。如果您使用col.names
(原始列表)而不是result
,则会获得列名称。