簡體   English   中英

指定循環R中要使用的列的名稱

[英]Specifying names of columns to be used in a loop R

我有一個超過30列和200行以上的df,但為簡單起見,將使用一個8列的示例。

X1<-c(sample(100,25))
B<-c(sample(4,25,replace=TRUE))
C<-c(sample(2,25,replace =TRUE))
Y1<-c(sample(100,25))
Y2<-c(sample(100,25))
Y3<-c(sample(100,25))
Y4<-c(sample(100,25))
Y5<-c(sample(100,25))
df<-cbind(X1,B,C,Y1,Y2,Y3,Y4,Y5)
df<-as.data.frame(df)

我寫了一個函數,將數據融化,生成一個帶有X1的圖,給出X軸值,並使用B和C中的值進行分面。

plotdata<-function(l){
    melt<-melt(df,id.vars=c("X1","B","C"),measure.vars=l)
    plot<-ggplot(melt,aes(x=X1,y=value))+geom_point()
    plot2<-plot+facet_grid(B ~ C)
    ggsave(filename=paste("X_vs_",l,"_faceted.jpeg",sep=""),plot=plot2)
}

然后,我可以手動輸入所需的Y變量

plotdata("Y1")

我不想為所有列生成圖。 我可以只將感興趣的列鍵入plotdata中,然后得到結果,但這似乎很不雅致(而且很費時間)。 我希望能夠手動指定感興趣的列,例如“ Y1”,“ Y3”,“ Y4”,然后編寫一個循環函數來完成所有指定的操作。

但是,我是寫循環的新手,無法找到一種循環功能的特定列名的方法。 標准的for(i in 1:length(df))不適合,因為我只想循環用戶指定的列

如果對此有答案,我很抱歉。 如果有的話,我找不到。

感謝Roland提供以下答案:

嘗試

for (x in c("Y1","Y3","Y4")) {plotdata(x)}

索引變量不必是數字

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM