如何用0删除R中的行并获得剩余行的平均值

如何用0删除R中的行并获得剩余行的平均值,r,dataframe,average,mean,data-cleaning,R,Dataframe,Average,Mean,Data Cleaning,我想删除数据中的所有0,并获取剩余值的各列平均值 dataframe <- ("file.csv") data_list = lapply (dataframe, read.table, header=TRUE) 我希望我的数据帧看起来像这样 A B C 3 3 5 4 7 6 我试过了 dataframe[apply(dataframe[c(1:3)],1,function(z) !any(z==0)),] 我犯了这个错误 Error in apply(dataframe[c(1:

我想删除数据中的所有0,并获取剩余值的各列平均值

dataframe <- ("file.csv")
data_list = lapply (dataframe, read.table, header=TRUE)
我希望我的数据帧看起来像这样

A B C
3 3 5
4 7 6
我试过了

dataframe[apply(dataframe[c(1:3)],1,function(z) !any(z==0)),]
我犯了这个错误

Error in apply(dataframe[c(1:3)], 1, function(z) !any(z == 0)) : 
  dim(X) must have a positive length


此外,我想得到剩余行的平均值。再一次,我对脚本完全陌生,不知道该怎么做。我将根据需要提供更多信息,但这是我目前的完整脚本

要删除所有包含零的行,您可以执行以下操作

df[!rowSums(df == 0), ]
#   A B C
# 3 3 3 5
# 4 4 7 6
对于剩余行的行平均值

rowMeans(df[!rowSums(df == 0), ])
#        3        4 
# 3.666667 5.666667 
其中
df

df <- read.table(text="A B C
1 0 2
2 1 0
3 3 5
4 7 6", header=TRUE)

df@RHatesMe-作为替代,尝试
rowMeans(na.omit(replace(dat,dat==0,na))
df <- read.table(text="A B C
1 0 2
2 1 0
3 3 5
4 7 6", header=TRUE)