他のデータフレームの変数を使って新しいデータフレームを作成する機能を作成したいと思います。そのためには、私自身の関数で変数名を何とか出力する必要があります。自分自身の関数で変数名を表示するr
変数は、6つの変数、バンド「w530」、「w550」、「w570」、「670」、「w700」および「w800」を有する2つのデータフレーム(asdおよびtetracam)から来る。したがって、各バンドに1つずつ、6つのデータフレームを作成したいと考えています。
# Band w530
w530<-data.frame(tetracam$filename,tetracam$time,tetracam$type,tetracam$w530,asd$w530)
names(w530)<-c("filename","time","type","tetracam","asd")
w530<-w530[order(w530$time),]
それが正常に動作しますが、私はすべてのバンドのために実行するために機能としてそれをやってみたい:私はこのように書くことができる一つずつ。上のコードでw530をすべて置き換える必要があると思いました。適用する家族のいくつかを使用することを考えたので。私が最初に私の共通の変数の名前でリストを作成しましたので、:そして、
bands<-c("w530","w550","w570","670","w700","w800")
、私は私の機能を埋めるために、リストから文字列を使用しcat
またはsprintf
を使用して、例えば、いくつかの方法を試してみました。しかし、それは動作しませんでした。実際には、apply
ファミリー機能を使用するかどうかはわかりません。この場合、いずれかを使用することができます:
my.fun<- function(band){
sprintf("%s<-data.frame(tetracam$filename,tetracam$time,tetracam$type,asd$%s,tetracam$%s)",band,band,band)
sprintf("names(%s)<-c('filename','time','type','asd','tetracam')",band)
sprintf("%s[order(%s$time),]",band,band)
}
何か助けていただければ幸いです。
これらの2つのデータフレーム、つまりasdとtetracamを関数に渡すことはありません。 2つ以上の引数を2つ追加し、これらの2つを入力として使用してください。それ以外の場合、関数はデフォルトで環境変数にアクセスできません。 – Masoud
'dput'を使ってデータセットの再現可能な例を提供してください。 – Masoud
[なぜ答えを受け入れるのですか?](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)回答を受け入れることで、同じ質問をした他の人に役立ちます。 – Masoud