R 是 NA 的子集行,除非行包含特定字符串
R subset rows that are NAs except where row contains a specific string
我试图了解一个具体案例,在这个例子中,“C7”如何与其他人相对立。我正在做一个箱线图来形象化这一点。我在 R 中有一个数据框,包含以下列:
gene case log2fc symbol
g1 c1 0.236291026 GG
g2 c2 0.073854478 GG
g3 c6 0.722921499 GG
g4 c7 0 GG
g5 c8 0.925691334 GG
g1 c3 0.412097286 HH
g2 c4 0.98899995 HH
g3 c5 0.494138717 HH
g4 c7 0.996523937 HH
g5 c9 0 HH
我想删除除此特定情况 C7 之外为 0 的行,然后绘制箱线图。
到目前为止,我设法将 0 转换为 NA 并从整个数据框中删除了行。但是,我不确定如何有条件地删除行。
df[df == 0] <- NA
在基数 R 中:
df[df$log2fc != 0 | df$case == 'c7',]
Tidyverse 解决方案:
df %>%
filter(log2fc != 0 | case == 'c7')
df %>%
filter(log2fc!=0 | case=="c7")
gene case log2fc symbol
1 g1 c1 0.23629103 GG
2 g2 c2 0.07385448 GG
3 g3 c6 0.72292150 GG
4 g4 c7 0.00000000 GG
5 g5 c8 0.92569133 GG
6 g1 c3 0.41209729 HH
7 g2 c4 0.98899995 HH
8 g3 c5 0.49413872 HH
9 g4 c7 0.99652394 HH
我试图了解一个具体案例,在这个例子中,“C7”如何与其他人相对立。我正在做一个箱线图来形象化这一点。我在 R 中有一个数据框,包含以下列:
gene case log2fc symbol
g1 c1 0.236291026 GG
g2 c2 0.073854478 GG
g3 c6 0.722921499 GG
g4 c7 0 GG
g5 c8 0.925691334 GG
g1 c3 0.412097286 HH
g2 c4 0.98899995 HH
g3 c5 0.494138717 HH
g4 c7 0.996523937 HH
g5 c9 0 HH
我想删除除此特定情况 C7 之外为 0 的行,然后绘制箱线图。 到目前为止,我设法将 0 转换为 NA 并从整个数据框中删除了行。但是,我不确定如何有条件地删除行。
df[df == 0] <- NA
在基数 R 中:
df[df$log2fc != 0 | df$case == 'c7',]
Tidyverse 解决方案:
df %>%
filter(log2fc != 0 | case == 'c7')
df %>%
filter(log2fc!=0 | case=="c7")
gene case log2fc symbol
1 g1 c1 0.23629103 GG
2 g2 c2 0.07385448 GG
3 g3 c6 0.72292150 GG
4 g4 c7 0.00000000 GG
5 g5 c8 0.92569133 GG
6 g1 c3 0.41209729 HH
7 g2 c4 0.98899995 HH
8 g3 c5 0.49413872 HH
9 g4 c7 0.99652394 HH