ファイルでいっぱいのディレクトリを読み込み、各データファイルで完全に観測されたケースの数を報告する関数を記述する必要があります(観測可能なインスタンスごとにNA値はありません)。この関数は、最初の列がファイルの名前で、2番目の列が完全な場合の の番号であるデータフレームを返す必要があります。 私の下書きについては下記をご覧ください。rの正しい形式でデータフレームを出力する方法は?
complete <- function (directory, id = 1:332){
nobs = numeric() #currently blank
# nobs is the number of complete cases in each file
data = data.frame() #currently blank dataframe
for (i in id){
#get the right filepath
newread = read.csv(paste(directory,"/",formatC(i,width=3,flag="0"),".csv",sep=""))
my_na <- is.na(newread) #let my_na be the logic vector of true and false na values
nobs = sum(!my_na) #sum up all the not na values (1 is not na, 0 is na, due to inversion).
#this returns # of true values
#add on to the existing dataframe
data = c(data, i, nobs, row.names=i)
}
data # return the updated data frame for the specified id range
}
サンプル実行complete("specdata",1)
の出力は、通常のデータフレーム形式で表示されていない理由を私はわからない
[[1]]
[1] 1
[[2]]
[1] 3161
$row.names
[1] 1
です。また、私の数字も正しいとは確信していません。 私は、それぞれのi番目のインスタンスでnewread
がそのファイルのすべてのデータを読み取ってからmy_na
に進むという前提のもとで作業しています。それはエラーの原因ですか?それとも別のことですか?説明してください。ありがとう!
は、あなたがCoursera HWをやっているように見えます。 – Nate
あなたの 'for'ループで、あなたは' data'(それを上書きする)に割り当てています。 – steveb
第1週はすでに予定されていますか? :) がんばろう。私はそのクラスから多くを学んだ。 –