【发布时间】:2014-12-01 05:03:19
【问题描述】:
假设我有一个数据框
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 和 7 的平均值(等于5)。我不想将“”设置为 0,因为这样第三行的平均值将是 3.333,这是不正确的。
【问题讨论】: