直方图不是在R中创建的

时间:2017-04-24 12:37:47

标签: r dataframe histogram

这是我第一次使用R,因为我需要为每个文件创建许多图。

我有一个包含四列的CSV文件,我想为每个文件生成一个直方图并将其保存在一个目录中。 我可以读取文件并将数据框附加到它们。但是当我跑步时,似乎代码卡在某处,既不会产生错误也不会产生错误! 数据看起来像这样

t1;w1;tt;probability
0;0.04745911973818716;reflections;0.0005
0;0.04745911973818716;clouds;0.001
0;0.04745911973818716;tree;0.14

这是我的代码:

#list files
temp = list.files("myDirectory",pattern    ="*.csv")
path <- 
file.path("myDirectory")

for (i in 1:length(temp)){ 
  data <- read.csv(file.path(path, temp[i] ), sep = ";" )

  mypath <- file.path("C:","folder1","folder2","plots",paste("myplot_", i,".tiff", sep = "")) 
  tiff(file=mypath, width = 8, height = 8,units = 'in',res=300)

  hist(c(data$probabilities,data$words), breaks= 0:1, main="word probabilities",xlab="words")

  dev.off()
 }

1 个答案:

答案 0 :(得分:1)

你确定你真正想要的是histogram吗? 如果您的.csv文件包含多于几行,并且您想绘制概率的分布,那很可能就是这种情况。如果行数较少,并且您想绘制每个单词的概率,那么您可能正在寻找一个条形图。
以防万一,以下是两者的例子。我简化了一些事情,使其完全独立。

首先创建一个名为“so-test”的目录,并向其添加几个.csv文件。

dir.create(testdir <- "so-test")

write("t1;w1;tt;probability
       0;0.04745911973818716;reflections;0.05
       0;0.04745911973818716;clouds;0.02
       0;0.04745911973818716;tree;0.14", 
       file.path(testdir, "so-test1.csv"))

write("t1;w1;tt;probability
       0;0.04745911973818716;cramp;0.007
       0;0.04745911973818716;practice;0.009
       0;0.04745911973818716;brush;0.02",
       file.path(testdir, "so-test2.csv"))

获取目录中存在的.csv文件列表

temp <- list.files(testdir, pattern=".csv$"); temp
path <- file.path(testdir)

创建概率的直方图 由于概率的数量只有三个,所以看起来有点奇怪。

for (i in 1:length(temp)) {
    data <- read.csv(file.path(path, temp[i]), sep = ";")

    mypath <- file.path(path, paste("hist_", i, ".png", sep=""))
    png(file=mypath, width=8, height=8, units='in', res=300)

    hist(data$probability, main="word probabilities",
      xlab="probability")

    dev.off()
}

enter image description here enter image description here

创建一个显示与每个单词相关的概率的条形图。

for (i in 1:length(temp)) {
    data <- read.csv(file.path(path, temp[i]), sep = ";")

    mypath <- file.path(path, paste("barplot_", i, ".png", sep=""))
    png(file=mypath, width=8, height=8, units='in', res=300)

    barplot(data$probability, names.arg=data$tt, 
      main="word probabilities", ylab="probability")

    dev.off()
}

enter image description here enter image description here