我想从mtcars
数据框的每一列创建一个向量。我需要两个解决方案。第一个应该在循环中完成,如果可能的话,另一个没有循环。
所需的输出应该是这样的:
vec_1 <- mtcars[,1]
vec_2 <- mtcars[,2]
etc...
我试图创建一个循环,但我失败了。你能告诉我那个循环有什么问题吗?
vec <- c()
for (i in 1:2){
assign(paste("vec",i,sep="_" <- mtcars[,i][!is.na(mtcars[,i])]
}
我需要从我的数据中删除可能的NA,这就是我将它放在示例中的原因。
答案 0 :(得分:1)
您的循环缺少几个括号,您应该将向量分配给R会话的全局环境,如下所示:
for (i in 1:2) {
assign(sprintf("vec_%d", i), mtcars[!is.na(mtcars[[i]]), i], envir = .GlobalEnv)
}
没有循环就无法获得所需的结果。