Error in `mutate()`: ℹ In argument: `row_mean = rowMeans(select(., -gene_name))`. ℹ In group 1: `gene_name = "A1BG"`. Caused by error in `h()`: ! 在为'rowMeans'函数选择方法时评估'x'参数出了错: object '.' not found Run `rlang::last_trace()` to see where the error occurred.
时间: 2024-02-13 16:06:25 浏览: 275
这个错误提示表明在执行代码时出现了错误,其中`mutate()`函数的错误信息为“在为'rowMeans'函数选择方法时评估'x'参数出了错: object '.' not found”。
这个错误通常是因为在使用`select()`函数时没有正确指定数据来源。`select()`函数用于选择数据框中的列,它的第一个参数应该是数据框本身,而这里的代码中使用了`.`作为数据源,但是在`mutate()`函数中`.data`参数默认为`.`,因此在`select()`函数中不需要指定数据源,可以直接使用变量名来选择列。因此,正确的代码应该是:
```
d %>%
group_by(gene_name) %>%
mutate(row_mean = rowMeans(select(., -gene_name))) %>%
slice(which.max(row_mean)) %>%
ungroup() %>%
select(-row_mean)
```
如果你还是遇到同样的错误,请尝试运行`rlang::last_trace()`以查看更详细的错误信息,并检查`select()`函数的参数是否正确。
相关问题
d %>% + group_by(gene_name) %>% + mutate(row_mean = rowMeans(select(., -gene_name)), .groups = "drop") %>% + slice(which.max(row_mean)) %>% + select(-row_mean) Adding missing grouping variables: `gene_name`
这段代码中,使用了`+`符号来将多行代码连接在一起,不过在每行代码结尾处都加上了`+`符号,应该去掉这些多余的符号。
另外,出现“Adding missing grouping variables: `gene_name`”警告信息的原因是,在`mutate()`函数中没有明确指定`gene_name`列作为分组变量。需要将`mutate()`函数中的`select(., -gene_name)`改为`select(., -gene_name) %>% ungroup()`,以去除分组信息并确保`rowMeans()`函数对整个数据框进行计算。修改后的代码如下:
```
d %>%
group_by(gene_name) %>%
mutate(row_mean = rowMeans(select(., -gene_name) %>% ungroup()), .groups = "drop") %>%
slice(which.max(row_mean)) %>%
select(-row_mean)
```
这样就可以避免警告信息的出现,并正确地对每个分组进行计算。
d %>% group_by(gene_name) %>% mutate(row_mean = rowMeans(select(., -gene_name))) %>% slice(which.max(row_mean)) %>% ungroup() %>% select(-row_mean)怎么拆成多个步骤
这段代码可以拆分成以下多个步骤:
1. 对数据框`d`按照`gene_name`进行分组。
```
grouped_data <- d %>% group_by(gene_name)
```
2. 对于每个分组,计算除`gene_name`列外的其他列的行均值,并将结果存储在新列`row_mean`中。
```
data_with_mean <- grouped_data %>% mutate(row_mean = rowMeans(select(., -gene_name)))
```
3. 对于每个分组,选择`row_mean`列中值最大的行,并将结果存储为一个新的数据框。
```
max_row_data <- data_with_mean %>% slice(which.max(row_mean))
```
4. 取消分组操作。
```
ungrouped_data <- max_row_data %>% ungroup()
```
5. 从最终的数据框中删除`row_mean`列。
```
final_data <- ungrouped_data %>% select(-row_mean)
```
这样,我们就将原来的代码分解成了五个步骤,每个步骤都是一个单独的管道操作。
阅读全文