如何使用R数据帧中的每列或某些列的行值创建新列?
R数据帧的列比较可以通过多种方式完成,一种方式是具有一列或多列均值。这样,我们可以将原始数据列与均值列进行比较,也可以将均值列与另一组均值进行比较。我们可以使用apply函数来创建一个新列,并为R数据帧的每一列或某些列使用行值。
示例
考虑下面的数据框
x1 <-1:20 x2 <-1:20 x3 <-20:1 df <-data.frame(x1,x2,x3) df
输出结果
x1 x2 x3 1 1 1 20 2 2 2 19 3 3 3 18 4 4 4 17 5 5 5 16 6 6 6 15 7 7 7 14 8 8 8 13 9 9 9 12 10 10 10 11 11 11 11 10 12 12 12 9 13 13 13 8 14 14 14 7 15 15 15 6 16 16 16 5 17 17 17 4 18 18 18 3 19 19 19 2 20 20 20 1
我们将为所有列的平均值和某些列的平均值创建新列-
示例
df$Means <-apply(df,1,mean) df
输出结果
x1 x2 x3 Means 1 1 1 20 7.333333 2 2 2 19 7.666667 3 3 3 18 8.000000 4 4 4 17 8.333333 5 5 5 16 8.666667 6 6 6 15 9.000000 7 7 7 14 9.333333 8 8 8 13 9.666667 9 9 9 12 10.000000 10 10 10 11 10.333333 11 11 11 10 10.666667 12 12 12 9 11.000000 13 13 13 8 11.333333 14 14 14 7 11.666667 15 15 15 6 12.000000 16 16 16 5 12.333333 17 17 17 4 12.666667 18 18 18 3 13.000000 19 19 19 2 13.333333 20 20 20 1 13.666667
示例
df$Means_of_x1_and_x2 <-apply(df[,1:2],1,mean) df
输出结果
x1 x2 x3 Means Means_of_x1_and_x2 1 1 1 20 7.333333 1 2 2 2 19 7.666667 2 3 3 3 18 8.000000 3 4 4 4 17 8.333333 4 5 5 5 16 8.666667 5 6 6 6 15 9.000000 6 7 7 7 14 9.333333 7 8 8 8 13 9.666667 8 9 9 9 12 10.000000 9 10 10 10 11 10.333333 10 11 11 11 10 10.666667 11 12 12 12 9 11.000000 12 13 13 13 8 11.333333 13 14 14 14 7 11.666667 14 15 15 15 6 12.000000 15 16 16 16 5 12.333333 16 17 17 17 4 12.666667 17 18 18 18 3 13.000000 18 19 19 19 2 13.333333 19 20 20 20 1 13.666667 20
示例
df$Means_of_x1_and_x3 <-apply(df[,1:3],1,mean) df
输出结果
x1 x2 x3 Means Means_of_x1_and_x2 Means_of_x1_and_x3 1 1 1 20 7.333333 1 7.333333 2 2 2 19 7.666667 2 7.666667 3 3 3 18 8.000000 3 8.000000 4 4 4 17 8.333333 4 8.333333 5 5 5 16 8.666667 5 8.666667 6 6 6 15 9.000000 6 9.000000 7 7 7 14 9.333333 7 9.333333 8 8 8 13 9.666667 8 9.666667 9 9 9 12 10.000000 9 10.000000 10 10 10 11 10.333333 10 10.333333 11 11 11 10 10.666667 11 10.666667 12 12 12 9 11.000000 12 11.000000 13 13 13 8 11.333333 13 11.333333 14 14 14 7 11.666667 14 11.666667 15 15 15 6 12.000000 15 12.000000 16 16 16 5 12.333333 16 12.333333 17 17 17 4 12.666667 17 12.666667 18 18 18 3 13.000000 18 13.000000 19 19 19 2 13.333333 19 13.333333 20 20 20 1 13.666667 20 13.666667
示例
$Means_of_x2_and_x3 &klt;-apply(df[,2:3],1,mean) df
输出结果
x1 x2 x3 Means Means_of_x1_and_x2 Means_of_x1_and_x3 Means_of_x2_and_x3 1 1 1 20 7.333333 1 7.333333 10.5 2 2 2 19 7.666667 2 7.666667 10.5 3 3 3 18 8.000000 3 8.000000 10.5 4 4 4 17 8.333333 4 8.333333 10.5 5 5 5 16 8.666667 5 8.666667 10.5 6 6 6 15 9.000000 6 9.000000 10.5 7 7 7 14 9.333333 7 9.333333 10.5 8 8 8 13 9.666667 8 9.666667 10.5 9 9 9 12 10.000000 9 10.000000 10.5 10 10 10 11 10.333333 10 10.333333 10.5 11 11 11 10 10.666667 11 10.666667 10.5 12 12 12 9 11.000000 12 11.000000 10.5 13 13 13 8 11.333333 13 11.333333 10.5 14 14 14 7 11.666667 14 11.666667 10.5 15 15 15 6 12.000000 15 12.000000 10.5 16 16 16 5 12.333333 16 12.333333 10.5 17 17 17 4 12.666667 17 12.666667 10.5 18 18 18 3 13.000000 18 13.000000 10.5 19 19 19 2 13.333333 19 13.333333 10.5 20 20 20 1 13.666667 20 13.666667 10.5