as.data.frame() 无列名 (R)

Jan*_*Jan 3 r dataframe

假设我有以下列表:

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
Run Code Online (Sandbox Code Playgroud)

和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))
Run Code Online (Sandbox Code Playgroud)


现在我想将此列表转换为dataframe:

df <- as.data.frame(do.call(cbind, result), 
                    stringsAsFactors = FALSE, 
                    col.names = c('speed', 'distance', 'degrees'))
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不包括输出中的列名称(为什么?):

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
Run Code Online (Sandbox Code Playgroud)

zx8*_*754 5

结果列表没有名称,给它命名然后转换,不需要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
Run Code Online (Sandbox Code Playgroud)