如何通过 R 中的数字而不是名称来计算列的平均值

问题描述 投票:0回答:1

在我的数据框中,我有一列是最新可用数据的月份/年份(例如,目前显示的是 12 月 23 日,因为这是最新的,但下个月会显示为 1 月 24 日)。我想计算该列的平均值,但我不想每次都必须进去更改列名称。最近的月份始终是第 26 列。

组织代码 |...| 10 月 23 日 | 11 月 23 日 | 12 月 23 日

OrgA |...| 0.78 | 0.78 0.56 | 0.56 0.76

OrgB |...| 0.36 | 0.36 0.46 | 0.46 0.74

OrgC |...| 0.48 | 0.48 0.66 | 0.66 0.96

我尝试过以下方法:

z_name = names(df[,26])
z = df$z_name

但出现此错误:

Warning message:
Unknown or uninitialised column: `z_name`

我也尝试过这种方法:

mean.df.latest = df %>% mean(.[[26]])

但出现此错误:

Warning: argument is not numeric or logical: returning NA
r dataframe dplyr mean
1个回答
0
投票

您可以执行

df[,26] %>% mean()
,或者因为它始终是最后一列,您可以执行
df[,ncol(df)] %>% mean()
。最后一个的工作原理如下:
ncol(df)
为您提供数据框中的列数 (26),然后将该数字传递到
df
的列中,请记住,在数据框中指定第一个位置是行位置
df[row, ]
,第二个位置是列位置
df[ ,column]

© www.soinside.com 2019 - 2024. All rights reserved.