1
私はAPIから複数の数値を取得し、データフレームに入力する関数を持っています。私はデータフレームをこの関数にフックするためにapply関数を使い、すべての行についてこれを一度呼び出す必要があります。ここに私の再現性の例:R:r複数の値を適用するとき
# create data frame
df = data.frame(Long=c(0.0, 0.0 , 0.0), Lat=c(0.0, 0.0, 0.0), c=c("test1", "test2", "test3"))
# random number betweeen 1 and 10
rand1 = function(){
sample(1:10, 1)
}
# random number betweeen 1 and 10
rand2 = function(){
sample(100:500, 1)
}
# calls the "API" --- simplified with two random numbers coming from two functions
callAPI = function(entry){
entry[1] = rand1()
entry[2] = rand2()
}
# run my function
df[,1] <- apply(df, 1, callAPI)
df
callAPIが第二の数(rand2から入手した乱数())との最初の列を上書きするようです。私がここで達成したいのは、操作の最後に変更されたデータフレームを持つように、データフレームに(rand1とrand2でシミュレートされた)どこかから得られた数字の任意のリストを格納することだけです。
一般的に、私は適用するのが非常に難しいと感じています。それは実際に悪い習慣であり、単純なforループを使用することはお勧めですか?