20

重複の可能性:
R - data.frame で NA を含む行を削除する

複数の列を持つ sub.new という名前のデータフレームがあります。NAそして、またはblank space「 」を含むセルを除外しようとしています。
を使用しようとしましたsubset()が、特定の列の条件を対象としています。データフレーム全体をスキャンして、セルがないサブセットを作成する方法はありますNAblank space?

以下の例では、最初の行のみを保持する必要があります。

# ID               SNP             ILMN_Strand   Customer_Strand
ID1234              [A/G]          TOP           BOT
Non-Specific        NSB (Bgnd)     Green
Non-Polymorphic     NP (A)         Red
Non-Polymorphic     NP (T)         Purple
Non-Polymorphic     NP (C)         Green
Non-Polymorphic     NP (G)         Blue
Restoration         Restore        Green

助言がありますか?ありがとう

4

2 に答える 2

58

さらに分析する前に、すべての "" (空白のセル) を NA に設定することをお勧めします。

ファイルから入力を読み取る場合は、すべての "" を NA にキャストすることをお勧めします。

foo <- read.table(file="Your_file.txt", na.strings=c("", "NA"), sep="\t") # if your file is tab delimited

テーブルがすでにロードされている場合は、次のように操作できます。

foo[foo==""] <- NA

次に、NAのない行のみを保持するには、次を使用できますna.omit()

foo <- na.omit(foo)

または、NA のない列を保持するには:

foo <- foo[, colSums(is.na(foo)) == 0] 
于 2012-10-06T21:29:36.087 に答える
11

あなたが持っているデータセットの種類が正確にわからないので、私は一般的な答えを提供します。

x <- c(1,2,NA,3,4,5)
y <- c(1,2,3,NA,6,8)
my.data <- data.frame(x, y)
> my.data
   x  y
1  1  1
2  2  2
3 NA  3
4  3 NA
5  4  6
6  5  8
# Exclude rows with NA values
my.data[complete.cases(my.data),]
  x y
1 1 1
2 2 2
5 4 6
6 5 8
于 2012-10-06T21:18:47.647 に答える