私はRのforループで作業していますが、結果をベクトルに格納する必要がありました。私はこれがかなり一般的な答えであることを知っています、そして、私の問題はそこにはありませんが、順序を進めましょう。小数点付きのループと結果をベクトルに格納
私はそれらのデータを得た:
# here the data
alpha <- c(1,2,3,4,5,6)
beta <- c(0.1,0.5,0.3,0.4,0.5,0.6)
data <- data.frame(alpha, beta)
そして私は、ある一定の閾値を超えるデータを選択する簡単な関数ます
# here the function
funny <- function(x,k)
{x[x[,2]>=k,]}
# here an example of the function
funny(data,0.5)
alpha beta
2 2 0.5
5 5 0.5
6 6 0.6
をしかし私が欲しいのは行く行の数ですしきい値を超えると、次のようになります。
# here the result wanted
nrow(funny(data,0.5))
[1] 3
彼はkの変化、関数のパラメータ?そして結果をベクトルにしたいと思います。私は
Saving results from for loop as a vector in r
を見て、ループ用に作成されたと私は、この作成された:すべての最初のすべてがすべての権利である場合を見てみましょう:
# here the sequence
s <-seq(0.1,0.6, by = 0.1)
# here the I loop
for(i in s) {print(nrow(funny(data,i)))}
[1] 6
[1] 5
[1] 4
[1] 4
[1] 3
[1] 1
をしかし、明確にこれではありませんベクトルに格納されます。問題はここにあります。私が試した:
# already written sequence
s <-seq(0.1,0.6, by = 0.1)
# here the empty vector
vec <- vector("numeric")
# here the II problematic loop
for(i in s) {vec[i]<-(nrow(funny(data,i)))}
vec
そして、ここでの結果は私が[1] 6 5 4 4 3 1
さらに[1] 0 0 0 0 0 0
に関する情報のようなもの期待、したくない:
# sequence * 10
s <-seq(1,6, by = 1)
# here the vector
vec <- vector("numeric")
# and the III loop, that it works now.
for(i in s) {vec[i]<-(nrow(funny(data,i/10)))}
vec
[1] 6 5 5 4 3 1
:私はこのような何かを試してみました をしかし、私はなぜこのIIIが働いているのか、なぜIIループがないのか理解できないので、これは気に入らない。
私は何をしないのですか?