用于在R中循环数据帧

时间:2019-03-07 11:37:29

标签: r loops for-loop

我要获取的样本数据:

data = data.frame(year=c(10,11,12,13,14),
lag=c(9,10,11,12,13),
lead=c(11,12,13,14,15))

这是一个循环

for (year in c(10:14)){
 year
}

我想使用这种循环样式创建一个数据框,该循环将循环中的值存储到新变量中,如示例数据所示。这是我在下面的尝试,但给出了错误。

for (year in c(10:14)){
  year = x[i] = year ;
  lag = x[i+1] = year - 1;
  lead = x[i+2] = year + 1
}

2 个答案:

答案 0 :(得分:0)

假设您想将每年未知且不可公开的功能应用于f(x),则可以使用dplyr来添加新列,如下所示:

data = data%>%mutate(New_column_1= f(year),
                     New_column_2= f2(year),
                     etc ...)

答案 1 :(得分:0)

我希望这会有所帮助


library(dplyr)
data_df <- data.frame(year=c(10,11,12,13,14))
data_df %>% mutate(lag_val= lag(year, n=1, default = year[1]-1),
                   lead_val= lead(year, n=1, default = year[nrow(data_df)]+1))