library("pheatmap") library("jsonlite") setwd(dir = "D:/Diyang/1") temp = list.files(pattern="*.csv") myfiles = lapply(temp, read.csv) myfiles = lapply(myfiles, na.omit) file_nums = length(temp) filename = sapply(strsplit(temp,"\\."),"[[",1) for(i in filename) { df = read.csv(paste0(i,'.csv'),header=T,row.names=1) df = replace(df,is.na(df),1) df_temp = df for (name in c("ACC","BLCA")) { print(df[which(colnames(df) == name)]) } df = -log10(abs(df)) df[df_temp<0] = -df[df_temp<0] pdf(paste0(i,'.pdf'),length(colnames(df))/2,length(rownames(df))/2) paletteLength = 1000 #immune #myColor <- colorRampPalette(c("white", "#FF7C00"))(paletteLength) #exp #myColor <- colorRampPalette(c("white", "red"))(paletteLength) #cell #myColor <- colorRampPalette(c("white", "blue"))(paletteLength) #drug #myColor <- colorRampPalette(c("white", "#660BAB"))(paletteLength) #yzx_gx #myColor <- colorRampPalette(c("white", "#C7007D"))(paletteLength) #exp宸紓 # myColor <- colorRampPalette(c("green", "white", "red"))(paletteLength) # myBreaks <- c(seq(min(df), 0, length.out=ceiling(paletteLength/2) + 1), # seq(max(df)/paletteLength, max(df), length.out=floor(paletteLength/2))) #myBreaks <- c(seq(0, max(df), length.out=floor(paletteLength/2))) ####################################### getSig <- function(dc) { sc <- ' ' if (dc < 0.0001) {sc <- '****'} else if (dc < 0.001){sc <- '***'} else if (dc < 0.01){sc <- '**'} else if (dc < 0.05) {sc <- '*'} else{sc <- ''} return(sc) } sig.mat <- matrix(sapply(as.matrix(df_temp), getSig), nrow=nrow(as.matrix(df_temp))) str(sig.mat) ######################################## xx <- pheatmap(df, color=myColor, breaks=myBreaks, clustering_method="average", cluster_rows=F,cluster_cols=F, cellwidth = 20,cellheight = 20,main="-log10(p)",display_numbers=sig.mat) print(xx) dev.off() }为什么最后没有出土
时间: 2024-04-09 19:27:15 浏览: 127
你的代码最后没有生成预期的PDF文件,可能是由于以下原因之一:
1. 检查目录中是否有足够的空间来存储生成的PDF文件。
2. 确保设置的工作目录`"D:/Diyang/1"`是正确的,并且包含了你想要读取的`.csv`文件。
3. 检查`.csv`文件是否包含合适的数据,并且能够正确读取。
4. 确保`myColor`和`myBreaks`变量已经正确定义,并且与你想要使用的颜色和断点匹配。
5. 确保在循环中,每次生成的PDF文件名是唯一的,以免覆盖之前生成的文件。
请逐步检查代码中的这些问题,并根据需要进行修正。如果问题仍然存在,请提供更多详细信息,以便我能够更好地帮助你。
相关问题
setwd("D:/桌面/R/SKM.h5seurat") 错误于setwd("D:/桌面/R/SKM.h5seurat"): 无法改变工作目录
尝试设置R的工作目录到 "D:/桌面/R/SKM.h5seurat" 时遇到错误,这是因为`setwd()` 函数试图更改当前的工作目录,但可能由于权限不足或者路径不存在而失败[^1]。要解决这个问题,你可以按照以下步骤操作:
1. **确认路径有效性**:
确认给定的路径 "D:/桌面/R/SKM.h5seurat" 是否确实存在,可以通过 `file.exists("D:/桌面/R/SKM.h5seurat")` 来检查。
2. **修改权限**:
如果路径存在但仍然无法更改,可能是权限问题。确保你在运行 `setwd()` 的用户具有访问该目录的权限。
3. **临时切换工作目录**:
使用 `tempdir()` 函数获取一个临时目录,然后尝试将项目移动到那里,再通过 `setwd()` 转移到 "D:/桌面/R/SKM.h5seurat"。示例代码如下:
```r
temp_dir <- tempdir()
dir.create("D:/桌面/R/SKM.h5seurat", recursive = TRUE)
move_to_temp <- file.path(temp_dir, basename("D:/桌面/R/SKM.h5seurat"))
file.copy(move_to_temp, "D:/桌面/R/SKM.h5seurat", overwrite = TRUE)
setwd("D:/桌面/R/SKM.h5seurat")
```
4. **查看错误信息**:
获取完整的错误信息可以帮助诊断问题,如上所示,错误消息通常会显示为什么无法更改工作目录。
如果以上步骤不能解决问题,可能需要查阅R的具体文档或联系系统管理员以获得更多帮助。
setwd(dir = 'D:/R/documents')不识别
如果 `setwd(dir = 'D:/R/documents')` 不能别,可能有以下几个原因:
1. 检查目录路径是否正确。确保目录路径中的斜杠方向正确,并目录名正确拼写。请注意,Windows系统中的目录路径使用反斜杠 `\`,而不是正斜杠 `/`。
2. 确保目录存在。在运行 `setwd()` 函数之前,确保目标目录 `'D:/R/documents'` 已经存在。
3. 检查文件系统权限。如果您没有足够的权限来访问或更改目标目录,那么 `setwd()` 函数将无法正常工作。请确保您有足够的权限,并且以管理员身份运行R。
如果问题仍然存在,请提供更多详细信息,以便我能够更好地帮助您解决问题。
阅读全文