我想使用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/
确实存在。