这是我第一次使用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()
}
答案 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()
}
创建一个显示与每个单词相关的概率的条形图。
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()
}