У меня есть df:
a<-c(5,1,5,3,5,3,5,1)
b<-c(1,5,1,5,1,5,3,5)
df<-as.data.frame(rbind(a,b))
names(df)<-c('pre1','post1','pre2','post2','pre3','post3','pre4','post4')
И у меня есть две группы сэмплов в столбцах, например, 'pre' и post ':
pre<-seq(1,8,by=2)
post<-seq(2,8,by=2)
Я хотел бы применить условие, что 100% до и 50% после прохождения ИЛИ 50% до и 100% после
например
если 100% 'pre' равны 3 или более, а 50% post - 3 или более
ИЛИ ЖЕ
если 50% 'pre' - 3 или более, а 100% post - 3 или более, оставьте строку
поэтому в примере df останется только строка 'a'
У меня есть:
test<- ((df[apply(df[pre],1,function(x) sum(x>=3)/length(x)),] &
df[apply(df[post],1,function(x) sum(x>3)/length(x))>=0.5,]) |
(df[apply(df[pre],1,function(x) sum(x>3)/length(x))>=0.5,] &
df[apply(df[post],1,function(x) sum(x>3)/length(x)),]))
Но я получаю вектор «ИСТИНА», а это не то, что я хочу.