2017-12-02 1 views
1

Rでgatherコマンドを使用してデータフレームを折りたたむと、私にはわからない警告が表示されます。このコマンドは、何をすべきかを行いますが、警告の理由を理解したいと思います。これは新しい警告であり、最近のRのインストールとパッケージのアップデートに関連している可能性があります。R:gatherはベクトル変数を使用して列を選択するときに警告を出します

私は、以下を参照してください、アイリスデータと簡単な例では、問題を再現し、それは列番号2,3と警告なしで動作しますが、私は、私はTTとして作成ベクトルを使用する場合に警告を与える:

> head(gather(iris,key=test,value=nn,2,3),2) 
    Sepal.Length Petal.Width Species   test nn 
299   6.2   2.3 virginica Petal.Length 5.4 
300   5.9   1.8 virginica Petal.Length 5.1 
> tt<- c(2,3) 
> head(gather(iris,key=test,value=nn,tt),2) 
    Sepal.Length Petal.Width Species   test nn 
299   6.2   2.3 virginica Petal.Length 5.4 
300   5.9   1.8 virginica Petal.Length 5.1 
Warning message: 
In if (!is.finite(x)) return(FALSE) : 
    the condition has length > 1 and only the first element will be used 

ありがとう、Claudiu

+0

をサブセットするためにそれを使用することができますuがそれらの両方は私にエラー – akrun

+0

tidyrバージョンを与えるようdplyr/tidyrのバージョンは0.7.2で、0.7をdplyr示しすることはできます.4。 afaikを集めるための関連するものは整っています – claudiu

+0

はい、私は同じバージョンを持っていますが、残念ながら両方ともエラーに終わっています。 # 順序(order_by)[[n]]:範囲外の添え字のエラー ' – akrun

答えて

0

列が削除または追加されたときに位置が変わる可能性があるので、位置の代わりにnamesを使用する方がよい場合があります。 「TT」は数字のインデックスであるように、我々は、列名

library(dplyr) 
library(tidyr) 
library(quantmod) 
last(gather(iris,key=test,value=nn, names(iris)[tt]),2) 
# Sepal.Length Petal.Width Species   test nn 
#299   6.2   2.3 virginica Petal.Length 5.4 
#300   5.9   1.8 virginica Petal.Length 5.1 
+1

ttを名前(アイリス)に置き換えるように編集します[tt] – claudiu

+0

@claudiuありがとう、コードを正しくコピーしませんでした。 – akrun

関連する問題