请看以下列表-
> List <- replicate( 20, list(sample(letters, 10)), simplify = FALSE )
可以使用以下代码将该列表转换为数据框:
> df <- data.frame(matrix(unlist(List), nrow=length(List), byrow=T)) > df X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 1 x c t g d l j y i q 2 s k u j i w x o p n 3 h p e c y m o d z s 4 c f e d n w v b k h 5 u y g j i m l x k s 6 q k f v y b c i x z 7 x i v m f j h t g b 8 c z s y k d f e j h 9 y v l x i q s o h t 10 s n i l c x e h q d 11 w j l y k a p v r g 12 l s q o n f p z u i 13 b d l z n i q p v c 14 f i d j a p z k e w 15 y a n p k g x f v b 16 k o c q u x i v e b 17 c u q o a e j l y v 18 j e o y w h q i b z 19 s j k x w l g z d u 20 h k r e x w f n c v
上面的代码会将所有字符变量转换为因子,如下所示:
> df$X1 [1] x s h c u q x c y s w l b f y k c j s h Levels: b c f h j k l q s u w x y
但是我们可以通过使用stringsAsFactors函数来避免这种情况-
> df <- data.frame(matrix(unlist(List), nrow=20, byrow=T),stringsAsFactors=FALSE) > df$X1 [1] "x" "s" "h" "c" "u" "q" "x" "c" "y" "s" "w" "l" "b" "f" "y" "k" "c" "j" "s" [20] "h"