normal <- colnames(geneExp1)[as.integer(substr(colnames(geneExp1),14,15)) >= 10&<19] Error: unexpected '<' in "normal <- colnames(geneExp1)[as.integer(substr(colnames(geneExp1),14,15)) >= 10&<"
时间: 2024-02-15 10:03:31 浏览: 161
出现这个错误是因为代码中的逻辑运算符 `&` 使用不当。代码应该修改为:
```
normal <- colnames(geneExp1)[as.integer(substr(colnames(geneExp1),14,15)) >= 10 & as.integer(substr(colnames(geneExp1),14,15)) <= 19]
```
这里使用了两个 `as.integer` 函数将截取的字符转换为整数,并使用 `>=` 和 `<=` 运算符分别判断是否大于等于 10 和小于等于 19。最终,满足条件的列名被存储在 `normal` 变量中。
相关问题
> genes <- fread("genes.tsv") > barcodes <- fread("barcodes.tsv") > mtx <- readMM("matrix.mtx") > mat <- as.matrix(mtx) > df <- as.data.table(mat) > setnames(df, colnames(df), barcodes$V1) Error in setnames(df, colnames(df), barcodes$V1) : 'new' 既不是特征向量也不是 function有什么错误
这个错误是因为你使用了 `setnames` 函数,它的第三个参数应该是一个字符向量,表示你想要修改的列名。但是你传递了一个单个的变量 `barcodes$V1`,这显然不是一个字符向量。
你可以尝试将 `barcodes$V1` 转换为字符向量,例如:
```
setnames(df, colnames(df), as.character(barcodes$V1))
```
这应该可以解决你遇到的错误。
> 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` 文件中出现。
阅读全文