我有一个data.frame,dim = 400行和15000列.我想应用一个条件,对于属于每个组的行,由df$Group我来定义,我必须检查该组是否具有超过50%的行的值.如果是,则保留现有值,否则全部替换0.
例如,对于组a df[1:6,1],
则将替换if sum(df[1:6,1] == 0)/length(df[1:6,1]) >50%所有值.否则现有值将保留.df[1:6,1]0
样本输入:
df <- read.table(text= "DATA r1 r2 r3 Group
a1 6835 256 0 a
a2 5395 0 67 a
a3 7746 0 30 a
a4 7496 556 50 a
a5 5780 255 0 a
a6 6060 603 0 a
b1 0 0 0 b
b2 0 258 0 b
b3 0 0 0 b
b4 0 0 0 b
b5 5099 …Run Code Online (Sandbox Code Playgroud)