特定の列の行が空白またはNAの場合、データフレームから行をサブセット化するにはどうすればよいですか。例えば:
x <- c(1,2,3,4,"","","")
y <- c("A","B","C","D","E","F","G")
z <- c(100,200,300,400,500,600,700)
xyz <- data.frame(x,y,z)
View(xyz)
g1 <- subset(xyz, subset=(x > 0))
戻り値:
警告メッセージ:Ops.factor(x、0)の場合:>因子にとって意味がありません
元のサブセットであるが、X列がゼロより大きい行のみを含む新しいデータフレームを返すようにするにはどうすればよいですか?
データフレームを作成したときx
に、それを因子変数にする必要があることを指定しました。
(技術的にはキャラクターであると指定しましたdata.frame
が、あなたの心を読んでそれをファクターに変換しました。繰り返しますが、技術的にはそれがキャラクターであると指定しませんでしたが、Rはあなたの心を読みました。 1つのベクトル内の数字と文字、それはそれらすべてを文字モードのベクトルに強制します。)
このため、「ゼロより大きい」は、このコンテキストでの比較演算子としては意味がありません。私はあなたの心を読み、あなたが実際x
に数値になりたいと結論付けますが、値が利用できない状況を考慮に入れています。その場合、あなたはする必要があります
xyz$x <- as.numeric(as.character(xyz$x))
subset(xyz, !is.na(x))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加