d %>% group_by(gene_name) %>% mutate(row_mean = rowMeans(select(., -gene_name))) %>% slice(which.max(row_mean)) %>% ungroup() %>% select(-row_mean)能不用管道操作符分布进行吗
时间: 2024-01-01 18:09:34 浏览: 28
是的,可以不用管道操作符将这段代码分步实现。下面是一种可能的分步实现方法:
```
# 按照 gene_name 列进行分组
grouped_data <- group_by(d, gene_name)
# 计算每行除 gene_name 列外的均值
data_with_mean <- mutate(grouped_data, row_mean = rowMeans(select(., -gene_name)))
# 选择 row_mean 列中的最大值所在的行
max_row_data <- slice(data_with_mean, which.max(data_with_mean$row_mean))
# 取消分组操作
ungrouped_data <- ungroup(max_row_data)
# 从最终的数据框中删除 row_mean 列
final_data <- select(ungrouped_data, -row_mean)
```
这种方法并没有使用管道操作符,而是将每个步骤的结果存储在一个新的变量中,然后将这个变量作为下一个步骤的输入。虽然这种方法可能看起来比较冗长,但它可以使每个步骤的目的和实现更加清晰。
相关问题
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) %>% ungroup()), .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)
```
这样就可以避免警告信息的出现,并正确地对每个分组进行计算。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)