for 循环
在开始for循环的时候,你必须要为输出结果分配足够的空间。这对循环效率十分重要,如果每次迭代中都使用的是c()来保存循环的结果,那么for循环的速度就会特别慢。
创建给定长度的空向量的一般方法是使用vector() 函数, 该函数有两个参数:向量类型(“double”,“list”等)和向量长度
seq_along(df)函数和我们熟悉的1:length(df)
相同,且更加安全
练习
- 计算出mtcars数据集的每列均值
output <- vector("list", ncol(mtcars))
names(output) <- names(mtcars)
for (i in names(mtcars)) {
output[[i]] <- mean(mtcars[[i]])
}
output
list转data.frame
library(plyr)
kk2=ldply(output,data.frame)
kk=data.frame(output)
kk3=bind_rows(output)
注意三者的区别
output
image.png
image.png
kk2
image.png
kk
image.png
kk3
image.png
- 确定flights数据集中每列的类型
out=vector("list",ncol(nycflights13::flights))
names(out) <- names(nycflights13::flights)
for(i in seq_along(out)){
out[[i]]=class(nycflights13::flights[[i]])
}
out2=ldply(out,data.frame)
网友评论