4

数行だけを選択する巨大なデータ フレームがあります。次に、条件に基づいて列の一部を削除します。以下に示すように、行 4460 を選択するとします。

        V1870 V107 V1315 V1867 V1544 V1207 V1252 V1765 V342 V429 V1826 V865 V1374
4460     0    0     3     0     5     0     2     0    4    0     0    0     0

問題は、この行を別の関数に渡すことができるように、この行を単純なベクトルに変換する必要があることです (つまり、すべての列/行の名前を削除する必要があります)。次の結果が得られるようにしたいと思います。

    [1] 0 0 3 0 5 0 2 0 4 0 0 0 0

as.listとを試しas.vectorましたが、期待した結果は得られませんでした。何か案が?

4

3 に答える 3

6

mtcarsデータからの例

mydata<-mtcars
k<-mydata[1,]
          mpg cyl disp  hp drat   wt  qsec vs am gear carb
Mazda RX4  21   6  160 110  3.9 2.62 16.46  0  1    4    4
names(k)<-NULL

unlist(c(k))
 [1]  21.00   6.00 160.00 110.00   3.90   2.62  16.46   0.00   1.00   4.00   4.00

@アナンダに従って更新:unlist(mydata[1, ], use.names = FALSE)

于 2013-10-13T00:14:19.400 に答える
1

それはすでにベクトルであり、各要素に名前のみが含まれていると思います(data.frameから継承されます)。

    #random df
    DF = data.frame(col1 = sample(1:10, 10), col2 = sample(1:10,10), col3 = sample(1:10, 10))

    DF[5,]
      col1 col2 col3
    5    3    7    5

    mode(DF[5,]) 
    [1] "list"

    mode(unlist(DF[5,]))
    [1] "numeric"

    names(DF[5,])
    [1] "col1" "col2" "col3"

    sum(DF[5,]) # computations are naturally done
    [1] 15

それにもかかわらず、名前を取り除くには、次のことができます。

    unname(unlist(DF[5,]))
    [1] 3 7 5
于 2013-10-13T00:17:42.970 に答える
0

行インデックスを使用してみてください。

list <- yourdataframe[4460, ]
于 2013-10-13T00:04:31.937 に答える