tsne_result<-as.data.frame(tsne$Y) > colnames(tsne_result)<-c('tsn1','tsn2') > ggplot(tsne_result,aes(tsn1,tsn2,color=cols)) > ggplot(tsne_result,aes(tsn1,tsn2))+geom_point() > library(ggplot2) > View(optdigits) > ggplot(tsne_result,aes(tsn1,tsn2,color=optdigits$Portfolio.Exits))+geom_point() > tsne$Y > plot(tsne$Y
时间: 2024-02-19 12:59:31 浏览: 157
这是一段 R 语言的代码,主要是使用 t-SNE 算法对数据进行降维,并利用 ggplot2 包进行可视化。其中,tsne_result 存储了降维后的结果,optdigits 是一个数据集,cols 和 Portfolio.Exits 是该数据集中的两个变量。具体代码解释如下:
- 第一行将 t-SNE 结果转换为数据框格式;
- 第二行为新的数据框添加列名;
- 第三行使用 ggplot2 包创建绘图对象,并设置颜色映射为 cols 变量;
- 第四行使用 ggplot2 包创建绘图对象,并添加散点图层;
- 第五行加载 ggplot2 包;
- 第六行查看 optdigits 数据集;
- 第七行使用 ggplot2 包创建绘图对象,并设置颜色映射为 Portfolio.Exits 变量;
- 第八行输出 t-SNE 的降维结果;
- 第九行使用基础 plot 函数绘制 t-SNE 的降维结果。
相关问题
getwd() ABC <- read.csv("D:/大一/科研/AB/ABC.csv") head(ABC) dim(ABC) ABC_subset <- ABC[, sapply(ABC, is.numeric)] ABC_1 <- ABC[rowSums(ABC_subset) != 0, ] dim(ABC_1) group <- read_csv("D:/大一/科研/AB/group.csv") group colnames(ABC_1) == group$id library(DESeq2) ABC_1 <- as.data.frame(sapply(ABC_1, as.integer)) group$id<- as.factor(group$id) group$dex<- as.factor(group$dex) dds <- DESeqDataSetFromMatrix(countData=ABC_1,colData=group,design=~dex) dds<-DESeq(dds) res<-results(dds) head(res) class(res) res_1<-data.frame(res) class(res_1) head(res_1) write.csv(res_1,file="D:/大一/科研/AB/final result.csv") colnames(ABC_1) == group$id [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE Warning message: In colnames(ABC_1) == group$id : longer object length is not a multiple of shorter object length > library(DESeq2) > ABC_1 <- as.data.frame(sapply(ABC_1, as.integer)) Warning message: In lapply(X = X, FUN = FUN, ...) : NAs introduced by coercion > group$id<- as.factor(group$id) > group$dex<- as.factor(group$dex) > dds <- DESeqDataSetFromMatrix(countData=ABC_1,colData=group,design=~dex) Error in DESeqDataSetFromMatrix(countData = ABC_1, colData = group, design = ~dex) : 不是所有的ncol(countData) == nrow(colData)都是TRUE
根据错误信息,显示在创建`DESeqDataSet`对象时发生了错误。错误信息是"不是所有的ncol(countData) == nrow(colData)都是TRUE"。
这意味着你的计数数据和元数据的列数不匹配。`countData`应该是一个矩阵或数据框,其中的列数应该与`colData`的行数相匹配。
为了解决这个问题,你需要检查一下`ABC_1`和`group`数据框的列数是否一致。确保它们具有相同的列数。
你可以使用以下代码检查列数:
```R
ncol(ABC_1)
ncol(group)
```
如果它们的列数不一致,你需要确保它们具有相同的列数才能创建`DESeqDataSet`对象。
如果还有其他问题,请随时提问。
> genes <- read.table("genes.tsv", header = TRUE) > row.names(genes) <- genes$ENSGeneID > genes <- genes[,-1] > barcodes <- read.table("barcodes.tsv") > colnames(barcodes) <- "cell_id" > mtx <- readMM("matrix.mtx") > exp_mtx <- as.data.frame(as.matrix(mtx)) > rownames(exp_mtx) <- rownames(genes[match(rownames(exp_mtx), rownames(genes)),]) Error in genes[match(rownames(exp_mtx), rownames(genes)), ] : 量度数目不对,是什么错误
这个错误可能是由于 `genes` 和 `exp_mtx` 的行数不匹配导致的。可以尝试检查一下 `genes.tsv` 文件中的基因数量是否与 `matrix.mtx` 文件中的基因数量一致,或者检查一下是否存在重复的基因。如果有重复的基因,需要对其进行去重操作。另外,还可以查看一下 `matrix.mtx` 文件中的基因是否都在 `genes.tsv` 文件中出现。
阅读全文