0

3D配列を事前に割り当てて、データで埋めようとしています。ただし、以前に定義したdata.frame列を使用してこれを行うと、配列が不思議なことにリストに変換され、すべてが台無しになります。data.frame列をベクトルに変換しても役に立ちません。

例:

exampleArray <- array(dim=c(3,4,6))
exampleArray[2,3,] <- c(1:6) # direct filling works perfectly

exampleArray
str(exampleArray) # output as expected

問題:

exampleArray <- array(dim=c(3,4,6))
exampleContent <- as.vector(as.data.frame(c(1:6)))
exampleArray[2,3,] <- exampleContent # filling array from a data.frame column
# no errors or warnings

exampleArray    
str(exampleArray)  # list-like output!

これを回避してアレイを正常に埋める方法はありますか?

あなたの提案をありがとう!

4

1 に答える 1

1

これを試して:

exampleArray <- array(dim=c(3,4,6))
exampleContent <- as.data.frame(c(1:6))
> exampleContent[,1]
[1] 1 2 3 4 5 6
exampleArray[2,3,] <- exampleContent[,1] # take the desired column
# no errors or warnings
str(exampleArray)
int [1:3, 1:4, 1:6] NA NA NA NA NA NA NA 1 NA NA ...

配列にデータフレームを挿入しようとしましたが、機能しません。代わりにdataframe$columnまたはを使用する必要があります。dataframe[,1]

また、as.vectorは)で何もしません。as.vector(as.data.frame(c(1:6))おそらく、後だったでしょうがas.vector(as.data.frame(c(1:6)))、それは機能しません。

as.vector(as.data.frame(c(1:6)))
Error: (list) object cannot be coerced to type 'double'
于 2013-03-15T11:46:34.040 に答える