複数のデータフレームのプロットをプログラムで作成し、それぞれにデータフレームの名前に基づいて固有の名前を付けようとしています。データフレームはRにインポートされ、ネームリストに名前が与えられました。各データフレームには2つの列があります。私の目標は、第2列の値のランクを生成し、ランクに対して値をプロットすることです。R:ベクトルに格納された複数のデータフレームのプロットを作成する
library(ggplot2)
library(tibble)
# List of data frame names
namelist<- c("ara5", "brach5", "homo5", "hord5", "ory5", "sor5", "trit5",
"zea5")
## Define function
makePlot<- function(DF){
sortindex<- order(DF[,2])
rnk<-rank(DF[,2])
temp<-as.tibble(cbind(rnk, DF[,2]))
colnames(temp)<-c("rank", "count")
p<- qplot(temp$rank, temp$count, xlab="rank", ylab="count", main=DF)
file<-paste(DF, ".png", sep="")
ggsave(file, plot=p, device="png")
}
## call function
sapply(namelist, makePlot)
私は上記のコードを実行すると、私は、次のエラーが表示さ:DFで エラー[2]:次元の数が正しくありません
私はからデータを取得しようとしているデータフレームいることが確認されています正しい次元数を持っているので、このコードがデータフレームのリストをどのように反復しているかに問題があると思います。
これを修正するにはどうすればよいですか?
はどうなりますか?データフレームオブジェクトの名前は、一般的に引用符で囲まれていません。 –
引用符または試行リスト(ara5、...など)を削除すると、両方ともエラーが発生します。 – cjfiscus
エラーは何ですか?それ以外の何かが間違っているかもしれません。 –