将变量名添加到for语句的列中

时间:2018-01-05 19:48:02

标签: r variables for-loop columnname

我在表格中有多个列,名为“Gr1”,“Gr2”,......,“Gr10”。

我想将类从字符转换为整数。我想以动态的方式做到这一点,我正在尝试这个,但它不起作用:

for (i in 1:10) {
  Col <- paste0('Students1$Gr',i)
  Col <- as.integer(Col)
                 }

我的目标是知道如何动态地将 for variable 添加到列的名称中。类似的东西:

for (i in 1:10) {
  Students1$Gr(i) <- as.integer(Students1$Gr(i))
                }

欢迎任何想法。 非常感谢你, Matias的

1 个答案:

答案 0 :(得分:1)

# Example matrix
xm <- matrix(as.character(1:100), ncol = 10);
colnames(xm) <- paste0('Gr', 1:10);

# Example data frame
xd <- as.data.frame(xm, stringsAsFactors = FALSE);

# For matrices, this works
xm <- apply(X = xm, MARGIN = 2, FUN = as.integer);

# For data frames, this works
for (i in 1:10) {
    xd[ , paste0('Gr', i)] <- as.integer(xd[ , paste0('Gr', i)]);
    }