データフレームの複数の列を引数として使用する関数を適用しようとしています。ここではforループを使うことができますが、これを行う方法が他にあるかどうかを確認したい場合引数として複数の列を使用する関数を適用すると、関数はdata.frameを返します。
ここでは簡単な例を示します。私の元の問題はやや複雑です。
DF1<-data.frame(start=seq(from=1, to=5, by=1),end=seq(from=10, to=14, by=1))
rep_fun <- function(x,y)
{
data.frame(A=seq(x, y)) #produces a sequence between x and y
}
DF2<-data.frame()
for (i in 1:nrow(DF1)){
temp<-data.frame(rep_fun(DF1$start[i],DF1$end[i]))
DF2<-rbind(temp,DF2) # this contains a dataframe that has a sequence between 'start' and 'end' for each row in DF1
}
forループで得られる望ましい結果を以下に示します。すべての行がここに表示されているわけではありません。一緒に行1〜10、配列がDF1 5
> DF2
A
1 5
2 6
3 7
4 8
5 9
6 10
7 11
8 12
9 13
10 14
11 4
12 5
これはxyの問題の一例です。しかし、これは可能なアプローチです: 'as.vector(DF1、1、function(x)x [1]:x [2]))' – missuse
私が言及したように、私の元の問題はもっと複雑です。元の問題のrep_funは、複数の行と複数の列のデータフレームを返します。 – ashleych