我希望获取79列,并为每列创建一个唯一的变量。 我可以通过子集化手动创建变量:
v1 <- x[1]
v2 <- x[2]
etc.
我想知道是否/知道有更快的方法来做到这一点。我只是不确定如何。 现在我有:
test <- matrix(rep(1,79), nrow = 1, ncol = 79)
c2v <- function(test){
for (i in c(1:79){
v[i] <- test[i]
}
return(v[i])
}
c2v(test)
一如既往地感谢您的帮助!
乔恩
答案 0 :(得分:2)
如下:
test <- matrix(rep(1,79), nrow = 1, ncol = 79)
for (i in 1:ncol(test)) {
temp <- (paste(c("v",i), collapse=""))
assign(temp,test[i])
}
我确信它可以重新配置以摆脱循环,但这应该有效。
以后我编辑过去的错误:
以下内容可能是更合适的非循环解决方案。
list2env(as.data.frame(test),envir=.GlobalEnv)
使用data.frame
或list
而不是分解单个向量可能仍然是更好的做法。
答案 1 :(得分:0)
library(reshape)
new_data= melt(data, id.vars=1)
# Assuming the first column is the ID variable.
#If you have more than one, you can specify a range like 1:4