在我的数据框中,我有一列是最新可用数据的月份/年份(例如,目前显示的是 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
您可以执行
df[,26] %>% mean()
,或者因为它始终是最后一列,您可以执行 df[,ncol(df)] %>% mean()
。最后一个的工作原理如下: ncol(df)
为您提供数据框中的列数 (26),然后将该数字传递到 df
的列中,请记住,在数据框中指定第一个位置是行位置 df[row, ]
,第二个位置是列位置 df[ ,column]
。