我有一个数据框,该数据框由15,000行和350列(其中1列包含字符串,其余为所有数字)组成,我想在其中删除所有整数列中包含低于特定数字的数字的行。
示例数据:
df1 <- data.frame(
ID = c("Gene1", "Gene2", "Gene3", "Gene4", "Gene5"),
var1 = c(245, 2, 0.4, 34,1098),
var2 = c(908, 1, 54, 34,856),
var3 = c(0, 3, 650, 0,6)
)
threshold <- 3
> df1
ID var1 var2 var3
1 Gene1 245.0 908 0
2 Gene2 2.0 1 3
3 Gene3 0.4 54 650
4 Gene4 34.0 34 0
5 Gene5 1098.0 856 6
所需的输出:
> df1
ID var1 var2 var3
1 Gene1 245.0 908 0
3 Gene3 0.4 54 650
4 Gene4 34.0 34 0
5 Gene5 1098.0 856 6
Gene2(所有列中的数字都低于3)已消失。我该如何实现?谢谢!
答案 0 :(得分:1)
接下来是一种public static async Task ProcessBatch(Batch batch)
{
await ssisMethod(batch).ConfigureAwait(false);
await CreateAndSendReports(batch).ConfigureAwait(false);
}
while(moreToProcess())
{
var batch = CreateBatch();
ProcessBatch(batch).ConfigureAwait(false); //Program will not wait here, it will proceed to create another batch.
}
的方法(但是@Onyambu非常理想):
tidyverse
输出:
library(tidyverse)
#Data
df1 <- data.frame(
ID = c("Gene1", "Gene2", "Gene3", "Gene4", "Gene5"),
var1 = c(245, 2, 0.4, 34,1098),
var2 = c(908, 1, 54, 34,856),
var3 = c(0, 3, 650, 0,6)
)
threshold <- 3
#Code
df1 %>% pivot_longer(-ID) %>% group_by(ID) %>%
mutate(Flag=sum(value<=3)) %>%
filter(Flag!=3) %>% select(-c(Flag)) %>%
pivot_wider(names_from = name, values_from=value)
答案 1 :(得分:1)
尝试一下:
> library(dplyr)
> df1 %>% filter_all(any_vars(is.numeric(.) & . > 3))
ID var1 var2 var3
1 Gene1 245.0 908 0
2 Gene3 0.4 54 650
3 Gene4 34.0 34 0
4 Gene5 1098.0 856 6