在cbind转换中保留变量类型(从列表到data.frame)R

时间:2018-09-22 19:46:39

标签: r dataframe

社区。我有以下问题。

假设我有以下列表。 如何在不将两个变量都转换为字符类型的情况下将其转换为data.frame或data.table? 我需要保留原始变量类型(字符串和数字)。

my_list<-list()
my_list[[1]]<-c("A","B","C")
my_list[[2]]<-c(1,2,3)
do.call(cbind,my_list)

     [,1] [,2]
[1,] "A"  "1" 
[2,] "B"  "2" 
[3,] "C"  "3" 

非常感谢您!

因此,最后的输出应该是:

[,1] [,2]
[1,] "A"  1 
[2,] "B"  2 
[3,] "C"  3 

1 个答案:

答案 0 :(得分:0)

您可以使用bind_cols中的dplyr

library(dplyr)

str(bind_cols(my_list))
#Classes ‘tbl_df’, ‘tbl’ and 'data.frame':  3 obs. of  2 variables:
# $ V1: chr  "A" "B" "C"
# $ V2: num  1 2 3

或直接创建一个数据框:

df <- data.frame(
  str = c("A", "B", "C"),
  int = c(1, 2, 3)
)

str(df)
#'data.frame':  3 obs. of  2 variables:
# $ str: Factor w/ 3 levels "A","B","C": 1 2 3
# $ int: num  1 2 3