假设我有如下数据帧,
> test <- data.frame(a=6:15, b=14:23, c= rep(1:5,2)) > test a b c 1 6 14 1 2 7 15 2 3 8 16 3 4 9 17 4 5 10 18 5 6 11 19 1 7 12 20 2 8 13 21 3 9 14 22 4 10 15 23 5
我想制作如下数据框,
a b c 1 10.5 18.5 1 2 10.5 18.5 2 3 10.5 18.5 3 4 10.5 18.5 4 5 10.5 18.5 5
价值在哪里,
> mean(test$a) [1] 10.5 > mean(test$b) [1] 18.5 > unique(test$c) [1] 1 2 3 4 5
任何人都可以帮我转换数据帧吗?我的尝试是,
data.frame(a=rep(mean(test$a),5), b=rep(mean(test$b),5), c=unique(test$c))
但是当我有更多的变量时,使用这种方式变得困难,而且它也没有效率.有没有一种简单而好的方法来做到这一点?
你可以试试:
data.frame(c(list(c=unique(test$c)),lapply(test[-3],mean))) # c a b #1 1 10.5 18.5 #2 2 10.5 18.5 #3 3 10.5 18.5 #4 4 10.5 18.5 #5 5 10.5 18.5