r-在这个简单语法中使用循环的方式



我想使用select和write.csv函数,但需要9次迭代。目前,我的原始数据(aggregate_rate(包含许多变量,我会将其划分并保存到9个文件中。下面是我编写的代码,但我想用循环函数(不管它是什么(来处理这个问题。

rate_1 = aggregated_rate %>% select(ID, length, rate1)
write.csv(rate_1,"C:/Users/Documents/rate_1")
rate_2 = aggregated_rate %>% select(ID, length, rate2)
write.csv(rate_2,"C:/Users/Documents/rate_2")
...
rate_9 = aggregated_rate %>% select(ID, length, rate9)
write.csv(rate_9,"C:/Users/Documents/rate_9")

由于您没有提供数据(aggregated_rate(,我将用伪数据df进行解释。

df <- data.frame(
ID = 1,
length = 2,
rate1 = 1,
rate2 = 2,
rate3 = 3
)
ID length rate1 rate2 rate3
1  1      2     1     2     3

你可以使用类似的循环

for(i in 1:3){
x <- paste0("rate", i)
print(df[,c("ID","length",x)])
}
ID length rate1
1  1      2     1
ID length rate2
1  1      2     2
ID length rate3
1  1      2     3

出于您的目的,下面的代码可能会起作用。

for (i in 1:9){
x <- paste0("rate", i)
y <- aggregated_rate[,c("ID","length",x)]
path <- paste0("C:/Users/Documents/rate_", i, ".csv", row.names=FALSE)
write.csv(y, path)
}

请注意您的路径C:/Users/Documents/确实存在。

最新更新