列が 1 つしかないように見えるデータセットから行を削除しようとすると問題が発生します。つまり、列ベクトルのようなものです。私は 2 つのことをしようとしています。(私にとって) どちらが先でも構いません。データのサンプルを次に示します。
共和党員,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,y
民主党員,y,y,y,n,n,n,y,y ,y,n,n,n,n,n,?,?
次のようにデータを取り込みます。
sampledata <- read.table("house-votes-84.data",)
しかし、各行のデータの文字列を列に変えて、その列に名前を付けたいと思います。これで、次のように名前を付けることができることがわかりました。
names(sampledata) <- c("col1" ...., "col17")
ただし、17 列ある場合にのみ可能です。各列はコンマで区切られています。
第二に、私は疑問符で行を取り除こうとしていますか?
私が試したことは何ですか?
私は次のようなことを試しました(私のデータはサンプルデータと呼ばれます):
sampledata[apply(sampledata[, -1], MARGIN = 1, function(x) all(x != "?")), ]
それは機能しません(そして、列が1つしかないため、Marginは各列が調べられるものでなければならないので推測しています(Marginに-1を試しましたが、役に立ちませんでした)
? を NA に変更して、
na.omit(sampledata)
それもうまくいきません。
次のようなコンマによる解析を試みました
splitting <- strsplit(as.character(sampledata$V1), split=",")
ここで、V1 は単一の列名です。それは私が得た最も興味深い結果です
以下のうち 435 (435 行のデータがあります)
_[[435]]_
_ [1] "republican" "n" "y" "n" "y" _
_ [6] "y" "y" "n" "n" "n" _
_[11] "y" "n" "y" "y" "y" _
_[16] "NA" "n"_
しかし、名前を変更しようとすると: Error in
names(sampledata) <- c("col1", "col2", "col3", "col4", "col5", : 'names' attribute [17] must be the same length as the vector [1]
データセットに変換しようとするなど、他のことを試しましたが、これはすべての値をランダム化されているように見える数値に変換するようです (? の 0、1、または 99 などではなく、値100 まで、場合によってはそれ以上)
疑問符のないサンプルで回帰を実行できるように、データを正しい形式で取得しようとしています。
私が幸運に恵まれたサイトは Stack Exchange Also で、ここにあります:
特定の値より大きいすべてまたはいずれかの列を持つ行のサブセット
そしてここ:
最初のもので動作させることができますが、それでもコード自体の 3 列のデータを生成しています。以下を使用して疑問符の付いた行を削除するプログラム:
X <- data.frame(Variable1=c(11,"?",12,15),Variable2=c(2,3,1,4))
X[X$Variable1!="?", ]
私はコードを作成する方法を見つけようとしてきました.行ごとに、インポートされたデータに対して同じことを実行します.data.frameとしても(私は1列しかなく、列はV1と呼ばれるので、同様にコードを次のように変更しました
X$V1
sampledata <- read.table("house-votes-84NaN.data.txt")
splitdat = do.call("rbind", strsplit(sampledata$V1, ","))
しかし、私は得る
**Error in strsplit(sampledata$V1, ",") : non-character argument**
私は read.table にもっと引数が必要であることを認識しています (私は思います)。
どんな助けでも大歓迎です。
ありがとうございました、
ブライアン