R循环脚本创建许多变量

时间:2013-09-26 16:57:32

标签: r variables loops scripting

我想在几个独立的数据帧中创建很多变量,然后我将这些变量组合成一个大数据帧。

每张纸都用一个字母标记(有24张),每张纸都在100-200个变量之间。我可以这样写:

a$varible1 <- NA
a$variable2 <- NA
.
.
.
w$variable25 <- NA

这可能/会变得丑陋,我想写一个循环或使用向量来完成工作。我有点时间这样做。

我基本上需要一个脚本,它允许我指定一个表单,然后只是将数字添加到它上面。

所以,

a$variable[i] <- NA

其中[i]被添加到创建的实际变量上。

3 个答案:

答案 0 :(得分:2)

我刚从@eddi那里学到了这个巧妙的小技巧

#created some random dataset with 3 columns
library(data.table)
        a <- data.table(
        a1 = c(1,5),
        a2 = c(2,1),
        a3 = c(3,4)
        )

#assuming that you now need to ad more columns from a4 to a200
# first, creating the sequence from 4 to 200
        v = c(4:200)
# then using that sequence to add the 197 more columns 
        a[, paste0("a", v) :=
                    NA]


# now a has 200 columns, as compared to the three we initiated it with
       dim(a)
       #[1]   2 200

答案 1 :(得分:0)

我认为你真的不需要这个,虽然你似乎是出于某种原因这么认为。

也许是这样的:

a <- as.data.frame(matrix(NA, ncol=10, nrow=5))
names(a) <- paste0("Variable", 1:10)

print(a)
#   Variable1 Variable2 Variable3 Variable4 Variable5 Variable6 Variable7 Variable8 Variable9 Variable10
# 1        NA        NA        NA        NA        NA        NA        NA        NA        NA         NA
# 2        NA        NA        NA        NA        NA        NA        NA        NA        NA         NA
# 3        NA        NA        NA        NA        NA        NA        NA        NA        NA         NA
# 4        NA        NA        NA        NA        NA        NA        NA        NA        NA         NA
# 5        NA        NA        NA        NA        NA        NA        NA        NA        NA         NA

答案 2 :(得分:0)

如果您想要不同类型的变量:

p <- 10 # number of variables
N <- 100 # number of records
vn <- vector(mode="list", length=p)
names(vn)  <- paste0("V", seq(p))
vn[1:8] <- NA_real_ # numeric
vn[9:10] <- NA_character_ # character
df <- as.data.frame(lapply(vn, function(x, n) rep(x, n), n=N))