私は2つの関連する質問があります-私はRを正しく学ぼうとしているので、Rコースからいくつかの宿題の問題をやっています。彼らは私たちに相関のベクトルを返す関数を書かせています:
example.function <- function(threshold = 0) {
example.vector <- vector()
example.vector <- sapply(1:30, function(i) {
complete.record.count <- # ... counts the complete records in each of the 30 files.
## Cutting for space and to avoid giving away answers.
## a few lines get the complete records in each
## file and count them.
if(complete.record.count > threshold) {
new.correlation <- cor(complete.record$val1, complete.record$val2)
print(new.correlation)
example.vector <- c(new.correlation, example.vector)
}
})
# more null value handling#
return(example.vector)
}
関数が実行されると、相関値がstdoutに出力されます。印刷される値は小数点以下6桁まで正確です。だから私は私が良い値を取得していることを知ってnew.correlation.
います返されるベクトルにはそれらの値が含まれていません。代わりに、それは順番に整数です。
> tmp <- example.function()
> head(tmp)
[1] 2 3 4 5 6 7
なぜsapply
整数をベクトルにプッシュしているのか理解できませんか?ここで何が欠けていますか?
私は実際にはコア構造を理解していません。それは多かれ少なかれ:
some.vector <- vector()
some.vector <- sapply(range, function(i) {
some.vector <- c(new.value,some.vector)
}
それはその冗長性においてひどく非Rのようです。チップ?