我正在学习使用 R,我需要一些帮助来弄清楚如何根据条件从初始数据帧子集的平均值创建数据帧。
我的 df 为 ~18000 行,9 列,其中一列是距离。我想使用距离条件来平均 9 列的值。第一个子集对应于 0:2.5 的距离范围,第二个子集对应于 2.5:5 的范围,依此类推,每 2.5 米。
我可以这样制作第一个子集:
df1 <- subset(df_ini, df_ini$Distance..m.>0 & df_ini$Distance..m.<2.5)
新数据帧现在有 18 行。
然后,我需要平均每列的值,将它们存储在新的 df 中,并继续对每个子集执行此操作,将平均值附加到相同的 df。
我无法找到正确的循环来做到这一点,我真的很感激任何想法/提示。
谢谢!
我对 R 很陌生,但也许这会给人一些灵感。我建议你看看dplyr包。
对于mtcars:
library(dplyr)
df1 <- mtcars %>% filter(mpg >= 10 & mpg <= 20) %>% summarise_all(funs(mean))
df2 <- mtcars %>% filter(mpg >=20 & mpg <= 30) %>% summarise_all(funs(mean))
combined <- rbind(subset, subset2)
在数据集中,您可以按距离范围进行过滤。理想情况下,您将使用循环来自动创建一系列组(0:2.5,2.5:5.0等(,就像您在帖子中所说的那样。我不知道该怎么做。