首页 > 解决方案 > 有没有办法创建一个循环来查找数据集中的特定方法?

问题描述

我正在尝试创建一个循环来找到时间和年份之间的平均值。这甚至是一种可能性还是#我必须独立计算每种方法,如下所示?我是 R 语言的新手,所以任何建议#将不胜感激:)

mean_1900 = mean(speed.data$Time[speed.data$Year == 1900])
mean_1904 = mean(speed.data$Time[speed.data$Year == 1904])
mean_1908 = mean(speed.data$Time[speed.data$Year == 1908])
mean_1912 = mean(speed.data$Time[speed.data$Year == 1912])
mean_1920 = mean(speed.data$Time[speed.data$Year == 1920])
mean_1924 = mean(speed.data$Time[speed.data$Year == 1924])
mean_1928 = mean(speed.data$Time[speed.data$Year == 1928])
mean_1932 = mean(speed.data$Time[speed.data$Year == 1932])
mean_1936 = mean(speed.data$Time[speed.data$Year == 1936])
mean_1948 = mean(speed.data$Time[speed.data$Year == 1948])
mean_1952 = mean(speed.data$Time[speed.data$Year == 1952])

标签: rloops

解决方案


试试下面的代码

yr <- c(1900,1904,1908,1012,1920,1924,1928,1932,1936,1948,1952)
list2env(setNames(lapply(yr,function(k) with(speed.data, mean(Time[Year==k]))),paste0("mean_",yr)),envir = .GlobalEnv) 

或者

list2env(setNames(lapply(with(speed.data,split(Time,Year)),mean),paste0("mean_",unique(speed.data$Year))),envir = .GlobalEnv)

推荐阅读