假设我有一个数据框
names <- c('joe','bob','john','carl')
col2 <- c(1,4,3,4)
col3 <- c(2,10,"",7)
col4 <- c(3,10,7,4)
df <- data.frame(names, col2, col3, col4)
如何让第5列显示准确的方法?
df$mean <- 0
df$mean <- rowMeans(df[, c(2:4)])
...但由于col3的str(df)是一个因素,因此计算不正确 我希望df $ mean列显示c(2,8, 5 ,5),因为第3行应该只取3和7的平均值(等于5)。我不想将“”设置为等于0,因为第三行的平均值将是3.333,这是不正确的。
答案 0 :(得分:0)
尝试:
df$col3<-as.numeric(as.character(df$col3))
df$mean <- rowMeans(df[, c(2:4)],na.rm=TRUE)