R Newbie ...计算平均值

时间:2018-11-19 20:21:29

标签: r dataframe calculated-columns

我对R还是很陌生,我仍然非常接近我认为非常陡峭的学习曲线的底部。所以...

我有一个数据框(从.csv文件导入)。包含许多字段-我们称它们为Field1,Field2,Field3 ... Field 10。

这些字段是数字。对于每行数据,我想计算最低3(例如)数字的平均值。换句话说:

((最小数字)+(第二最小数字)+(第三最小数字))/ 3

数据中还包含一些NA,因此我希望如果实际上没有3个数字求平均值,则计算将返回NA(尽管R仍然会自然地这样做)。

在R中是否有一种简洁的方法,并且(更好)将结果存储为现有数据帧中的新字段?

感谢您的任何建议。 谢谢。

2 个答案:

答案 0 :(得分:0)

 data(mtcars) 

 avg3 <- sapply(mtcars, function(x) mean(head(sort(x[!is.na(x)]), 3))) 

 avg3

 mtcars.avg3 <- rbind(mtcars, avg3) 

 mtcars.avg3

答案 1 :(得分:0)

  

对于每行数据,我想计算最低3个数字(例如)的平均值。

我认为这应该可以满足您的要求:

data <- mtcars
data$low.mean <- apply(data, 1, function(x) mean(head(sort(x[!is.na(x)]), n = 3)))