2017-03-31 77 views
0

有時我轉data.frame如果我想將它轉換成向量奇怪的行爲:的R - 轉換NX1 data.frame時爲矢量

> class(delta_older) 
[1] "data.frame" 
> dim(delta_older) 
[1] 129 1 
> head(as.vector(delta_older), 10) 
    delta_wiatru 
1   -31 
2   -112 
3   -417 
4   -596 
5   -13 
6   353 
7   888 
8   359 
9   -69 
10   520 
> head(as.vector(t(delta_older)), 10) 
[1] -31 -112 -417 -596 -13 353 888 359 -69 520 

這種行爲是因爲泰德的delta_older包含屬性?

> attributes(delta_older) 
$names 
[1] "delta_wiatru" 

$row.names 
    [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 
[41] 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 
[81] 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 
[121] 121 122 123 124 125 126 127 128 129 

$class 
[1] "data.frame" 

delta_older是產品外徑dplyr

+1

'as.vector()'對於一列數據幀仍然是一列數據幀:B < - BOD [-1]; STR(as.vector(B))' – jogo

回答

2

使用t你強迫你data.frame列到矩陣此時,屬性被丟棄。

xy <- data.frame(a = 1:3) 
attr(xy, "test") <- "some attribute" 

> attributes(xy) 
$names 
[1] "a" 

$row.names 
[1] 1 2 3 

$class 
[1] "data.frame" 

$test 
[1] "some attribute" 

> attributes(t(xy)) 
$dim 
[1] 1 3 

$dimnames 
$dimnames[[1]] 
[1] "a" 

$dimnames[[2]] 
NULL 


> attributes(as.vector(t(xy))) 
NULL