私の質問は2倍です。には、データフレームオブジェクトを名前として割り当てますか?ループスルー機能
df1 <- data.frame(k1 = runif(6, min=0, max=100),
k2 = runif(6, min=0, max=100),
k3 = runif(6, min=0, max=100),
k4 = runif(6, min=0, max=100))
df2 <- data.frame(k1 = runif(6, min=0, max=100),
k2 = runif(6, min=0, max=100),
k3 = runif(6, min=0, max=100),
k4 = runif(6, min=0, max=100))
df3 <- data.frame(k1 = runif(6, min=0, max=100),
k2 = runif(6, min=0, max=100),
k3 = runif(6, min=0, max=100),
k4 = runif(6, min=0, max=100))
私は再フォーマットして、この機能を使用して、各データフレームの一部の名前を変更したいと思います:第一に、これらの3つのデータ・フレームを与え
samplelist<-c("k2", "k4")
draft_fxn<-function(x, obj_name){
x.selected<-x[,c(samplelist)] #select columns of choice
colnames(x.selected)[1:2]<-paste(obj_name, colnames(x.selected), sep="_") #rename columns so they include original data frame name
return(x.selected)
}
#Example run and output:
df2_final<-draft_fxn(df2, "df2")
#output from:
head(df2_final[1:2],)
> df2_k2 df2_k4
>1 5.240274 53.03423
>2 5.042926 34.78974
最初の質問:私は私の機能を変更することができますどのように着るので、 'df2、df2' 'と入力してください。私のdraft_fxnコードでは、 "obj_name"を入力データフレームの名前に置き換えたいと思っています。私の例では "df2"です。
2番目の質問:どのように私のすべてのデータフレームをループすることができますか?おそらく、これはforループと似ていますか?あなたは、関数のsamplelist
外を定義して、内部にそれを呼び出しているので OBJS < -c(DF1、DF2、DF3)
for (file in objs){
out<-draft_fxn(file); return(out)
} #this doesn't work though.
[データのリストを保持する] http://stackoverflow.com/questions/17499013/how-do-i-make-a-list-of-data-frames)よりもむしろ、あまり関係のない変数の束を変数名の中に置くのではなく自体。 – MrFlick