2

コンマで区切られた 2 つの列を持つ csv ファイルがあります。最初の列は日付で、その後に数値データと思われるものが続きます。

2 列の data.frame オブジェクトにデータを格納する read.csv 関数を使用して、データを R に読み込みます。いくつかの操作を実行して、インデックスが日付に設定された動物園オブジェクトにオブジェクトを変換します。そのため、オブジェクトには 1 つの列があり、これは数値データと日付インデックスであると想定されます。

問題は、データに「ND」という文字列がランダムに散らばっていることです。「ND」を含まない動物園オブジェクトの行のみを抽出したい。

yr2 は動物園の対象です。

例:

03/15/2011 0.63 
03/16/2011 0.58 
03/17/2011 0.60 
03/18/2011 0.61 
03/21/2011 0.67 
03/22/2011 ND 
03/23/2011 0.69 
03/24/2011 0.72 
03/25/2011 0.79 
03/28/2011 0.81 
03/29/2011 0.81 
03/30/2011 0.80 
03/31/2011 0.80 

私は次のことを試しました:

> yr2[!="ND"]  
Error: unexpected '!=' in "yr2[!="  
> yr2[yr2[!="ND"]]  
Error: unexpected '!=' in "yr2[yr2[!="  
>   
> yr2[!is.character(yr2)]  
Data:  
character(0)  

Index:
Data:
named character(0)

Index:
integer(0)

いくつかのガイダンスをいただければ幸いです。ありがとうございました。

4

2 に答える 2

2

zooオブジェクトに変換する前に、問題のある「ND」データに対処することは理にかなっていますか? ND は「データなし」の略ですか。つまり、NA と解釈する必要がありますか?

txt <- "03/15/2011 0.63 
03/16/2011 0.58 
03/17/2011 0.60 
03/18/2011 0.61 
03/21/2011 0.67 
03/22/2011 ND 
03/23/2011 0.69 
03/24/2011 0.72 
03/25/2011 0.79 
03/28/2011 0.81 
03/29/2011 0.81 
03/30/2011 0.80 
03/31/2011 0.80"

#If ND == NA
dat <- read.table(textConnection(txt), header = FALSE, na.strings = "ND") 

#if not
dat <- read.table(textConnection(txt), header = FALSE) 

dat[dat$V2 != "ND" ,]

#or

subset(dat, V2 != "ND")
于 2011-04-03T02:11:07.683 に答える
0

これを試して:

Lines <- "03/15/2011 0.63 
03/16/2011 0.58 
03/17/2011 0.60 
03/18/2011 0.61 
03/21/2011 0.67 
03/22/2011 ND 
03/23/2011 0.69 
03/24/2011 0.72 
03/25/2011 0.79 
03/28/2011 0.81 
03/29/2011 0.81 
03/30/2011 0.80 
03/31/2011 0.80"

library(zoo)

z <- read.zoo(textConnection(Lines), format = "%m/%d/%Y", na.strings = "ND")
zz <- na.omit(z)

plot(zz)
于 2011-04-03T09:45:14.367 に答える