R 如何过滤TIBLE并将其转换为矩阵?
我制作了一个有三列的TIBLE。癌症状态(病例/对照)、特征A(x1)和特征B(x2)R 如何过滤TIBLE并将其转换为矩阵?,r,tidyverse,R,Tidyverse,我制作了一个有三列的TIBLE。癌症状态(病例/对照)、特征A(x1)和特征B(x2) 癌症像这样: library(dplyr) cancer %>% summarise(meanx1 = mean(x1[case == "case"]), meanx2 = mean(x2[case == "case"])) # A tibble: 1 x 2 meanx1 meanx2 <dbl> <dbl> 1 2
癌症像这样:
library(dplyr)
cancer %>%
summarise(meanx1 = mean(x1[case == "case"]),
meanx2 = mean(x2[case == "case"]))
# A tibble: 1 x 2
meanx1 meanx2
<dbl> <dbl>
1 2 6
如果您已更新到dplyr
1.0.0,则使用cross
:
cancer %>%
summarise(across(x1:x2, ~mean(x1[case == "case"]), .names = "mean_{col}")) %>%
as.matrix()
mean_x1 mean_x2
[1,] 2 2
使用新的dplyr 1.0.0,您可以
library(tidyverse)
cancer <- tibble(case = factor(c(rep(1,3),rep(0,3)),
levels = c(0,1),
labels = c("control","case")),
x1 = c(1,2,3,4,2,3),
x2 = c(4,8,6,0,2,4))
cancer %>%
filter(case == "case") %>%
summarize(across(x1:x2, mean))
库(tidyverse)
癌症%
过滤器(案例==“案例”)%>%
汇总(横向(x1:x2,平均值))
cancer %>%
summarise(meanx1 = mean(x1[case == "case"]),
meanx2 = mean(x2[case == "case"])) %>%
as.matrix()
meanx1 meanx2
[1,] 2 6
cancer %>%
summarise(across(x1:x2, ~mean(x1[case == "case"]), .names = "mean_{col}")) %>%
as.matrix()
mean_x1 mean_x2
[1,] 2 2
library(tidyverse)
cancer <- tibble(case = factor(c(rep(1,3),rep(0,3)),
levels = c(0,1),
labels = c("control","case")),
x1 = c(1,2,3,4,2,3),
x2 = c(4,8,6,0,2,4))
cancer %>%
filter(case == "case") %>%
summarize(across(x1:x2, mean))