Rの列のリストの平均を取って問題を実行しようとしています。 B(私がやろうとしています何Rの複数の列の平均
A B C D
1 2 3 4
5 6 7 8
9 10 11 12
は、列C(A、C)の平均を取ると、(E)と言う値として保存しているだけでなく、列cの平均:のは、私が持っているとしましょう、D)、それをFと言う別の値として保存させますか?それは可能ですか?
E F
2 3
6 7
10 11
Rの列のリストの平均を取って問題を実行しようとしています。 B(私がやろうとしています何Rの複数の列の平均
A B C D
1 2 3 4
5 6 7 8
9 10 11 12
は、列C(A、C)の平均を取ると、(E)と言う値として保存しているだけでなく、列cの平均:のは、私が持っているとしましょう、D)、それをFと言う別の値として保存させますか?それは可能ですか?
E F
2 3
6 7
10 11
チェックアウトdplyr取得するapply
を使用します。
library(dplyr)
df <- df %>% mutate(E=(A+C)/2, F=(B+D)/2)
df
A B C D E F
1 1 2 3 4 2 3
2 5 6 7 8 6 7
3 9 10 11 12 10 11
我々は、列1 & 2とデータセット、3 & 4と別のものをサブセット一緒にそれらを追加、2による除算、およびsetNames
setNames((df1[1:2] + df1[3:4])/2, c("E", "F"))
# E F
#1 2 3
#2 6 7
#3 10 11
と列名を変更することができまたは、list
にリサイクル論理ベクトルを使用して、list
(sapply
を使用)をループしてrowMeans
を取得して、rowMeans
を取得してください。
i1 <- c(TRUE, FALSE)
sapply(list(df1[i1], df1[!i1]), rowMeans)
それとも別のオプションは、データセットunlist
で、array
に変換し、mean
apply(array(unlist(df1), c(3, 2, 2)), c(1,2), mean)
私が持っている場合をa1、a2、a3、b1、b2、b3、c1、c2、c3などの列のリストを作成し、平均スコアo f列a1、a2、a3を列に、同様にbとcをa、b、cの平均を各列の単一列に入れることができますか? –
@DanteSmithその場合、 'sapply(split.default(df1、sub(" \\ d + "、"、colnames(df1)))、rowMeans) ' – akrun
\\ d +はどこで再生されますか?それは数字で列を分割していますか? –